C# 2005 数据库访问(五)

 ADO.NET DataSets中的XML支持

       在ADO.NET中的XML支持主要用于DataSet对象,因为XML主要关注所有的关系和分层的结构化数据。DataSet具有7个方法可以用于处理XML,其中最易于使用的方法是WriteXml(),它将数据集的内容以XML文档的形式写出。WriteXml()可以将XML写到不同的目标上。将XML作为输入格式接收的外部程序可以很容易的读取和处理XML。

       ReadXml()方法也可以用于将XML文件的内容读取到DataSet中。

下面为举例代码:

using System;

using System.Data;

using System.DataSqlClient;

class DataXmlExample{

    public static void Main(){

        //Specify SQL Server-specific connection string

        SqlConnection thisConnection = new SqlConnection(

        @"Data Source=(local);Integrated Security=SSPI;Initial Catalog=northwind");

        thisConnection.Open();

        DataSet thisDataSet = new DataSet();

       SqlDataAdapter custAdapter = new SqlDataAdapter("SELECT * FROM Customers",thisConnection);

        custAdapter.Fill(thisDataSet,"Customers");

        SqlDataAdapter orderAdapter = new SqlDataAdapter("SELECT * FROM Orders",thisConnection);

        orderAdapter.Fill(thisDataSet,"Orders");       

        SqlDataAdapter detailAdapter = new SqlDataAdapter("SELECT * FROM [Order Details]",thisConnection);

        detailAdapter.Fill(thisDataSet,"Order Details");

        DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",thisData.Tables["Customers"].Columns["CustomerID"],thisData.Tables["Orders"].Columns["CustomerID"]);

        custOrderRel.Nested = true;

        DataRelation orderDetailRel = thisDataSet.Relations.Add("OrderDetail",thisData.Tables["Orders"].Columns["OrderID"],thisData.Tables["Order Details"].Columns["OrderID"]);

        orderDetailRel.Nested = true;

         thisDataSet.WriteXml(@"c:/tmp/nwinddata.xml");

        Console.WriteLine(@"Successfully wrote XML output to file c:/tmp/nwinddata.xml");

         thisConnection.Close();

        }

}

       DataRelation对象的Nested属性通知WriteXml()方法,将订单细节和订单嵌套在XML输出中的每个父顾客之下。文件nwinddata.xml包含数据库中的所有数据。

<注:>本文参考文献

《C#入门经典》清华大学出版社

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值