ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据
来源:互联网 发布:源码上传工具 编辑:程序博客网 时间:2024/06/14 10:58
本文演示如何使用2种不同的方法从 SQL Server 生成 XML。方法1:使用了 SqlCommand 的 ExecuteXmlReader 方法获取 XmlReader,然后使用 DataSet 类的 ReadXml 方法把 XmlReader 填充到 DataSet。方法2:使用 SqlDataAdapter 提取数据内容,并使其适应 DataSet 内部的XML 结构。SqlDataAdapter 类封装了一组数据指令和一个数据连接,用于填充 DataSet 。
示例1,首先打开一个 SQL Server Northwind 库的连接。然后创建 SqlCommand,从 Northwind 库的 Customers 表选择所有行。在这条指令里 FOR XML 子句,用于表达你正在请求 SQL Server 返回 XML 文档作为查询结果。FOR XML 子句上的 XMLDATA 标识说明应该返回 XML-Data Schema。
示例1:
String sConnection = "server=(local)\\SQLExpress;Integrated Security=SSPI;database=northwind"; SqlConnection mySqlConnection = new SqlConnection(sConnection); SqlCommand mySqlCommand = new SqlCommand("select * from customers FOR XML AUTO, XMLDATA", mySqlConnection); mySqlCommand.CommandTimeout = 15; ... mySqlConnection.Open();
示例2(第一部分)创建了名为 myDataSet1 的 DataSet 对象。然后,添加 XmlTextReader 和 XmlReadMode.Fragment 标识,用于使用 ReadXml 方法读取 从 SQL Server 返回到 DataSet1 的 XmlDocument 。
示例2(第二部分)创建了名为 myDataSet2 的 DataSet 对象,并且创建了 SqlDataAdapter 对象提供 SQL 指令从 SQL Serever 库访问和检索数据。然后,调用 SqlDataAdapter 上的 Fill 方法来加载数据到 myDataSet2。
最后一步打印2个 DataSets 从而验证数据是否相同并且审查 XML 格式(参考下面 data1.xml 和 data2.xml 生成的数据)。
示例2:
SqlConnection myConnection = new SqlConnection("server=(local);Integrated Security=SSPI;database=northwind;"); myConnection.Open(); // 使用 XML 数据填充 DataSet 对象 DataSet myDataSet1 = new DataSet(); SqlCommand myCommand = new SqlCommand("SELECT TOP 1 * FROM Customers FOR XML AUTO, XMLDATA", myConnection); XmlReader myReader = myCommand.ExecuteXmlReader(); myDataSet1.ReadXml(myReader, XmlReadMode.Fragment); // 使用 SqlDataAdapter 填充 DataSet 对象 SqlDataAdapter myAdapter = new SqlDataAdapter("SELECT TOP 1 * FROM Customers", myConnection); DataSet myDataSet2 = new DataSet(); myAdapter.Fill(myDataSet2); // 将数据写入文件:用于比较 data1.xml 和 data2.xml myDataSet1.WriteXml("c:\\data1.xml"); myDataSet2.WriteXml("c:\\data2.xml"); // 打印 data1.xml Console.WriteLine("********************data1.xml********************"); Console.WriteLine(myDataSet1.GetXml()); // 打印 data2.xml Console.WriteLine("********************data2.xml********************"); Console.WriteLine(myDataSet2.GetXml());
方法1生成的 data1.xml:
<?xml version="1.0" standalone="yes"?><Schema1> <Customers CustomerID="ALFKI" CompanyName="Alfreds Futterkiste" ContactName="Maria Anders" ContactTitle="Sales Representative" Address="Obere Str. 57" City="Berlin" PostalCode="12209" Country="Germany" Phone="030-0074321" Fax="030-0076545" /></Schema1>
方法2生成的 data2.xml:
<?xml version="1.0" standalone="yes"?><NewDataSet> <Table> <CustomerID>ALFKI</CustomerID> <CompanyName>Alfreds Futterkiste</CompanyName> <ContactName>Maria Anders</ContactName> <ContactTitle>Sales Representative</ContactTitle> <Address>Obere Str. 57</Address> <City>Berlin</City> <PostalCode>12209</PostalCode> <Country>Germany</Country> <Phone>030-0074321</Phone> <Fax>030-0076545</Fax> </Table></NewDataSet>
0 0
- ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据
- ADO.NET 快速入门(十四):使用 SQL Server 检索数据
- ADO.NET:从 SQL Server 检索数据
- 使用ADO.NET怎样从SQL Server 中检索数据
- SQL Server 原生数据从XML生成JSON数据
- ADO.NET 快速入门(六):读写 XML
- ADO.NET 快速入门(四):从数据库填充 DataSet
- ADO.NET 快速入门(五):从 DataSet 更新数据库
- ADO.NET 快速入门(九):使用关系型数据
- ADO.NET 快速入门(十):过滤数据
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET 快速入门(三):从存储过程获取输出参数
- Ado.net 用法浅析 (Sql Server)
- sql server T-Sql操作Xml 和 数据生成xml
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET
- SQL Server入门------ADO 简介
- 344.Reverse String(String-Easy)
- UVa 548 Tree(DFS) 根据中序和后序重建二叉树,数组实现和指针实现
- android studio导入项目后 编译失败 R文件丢失 R变红
- C语言概述(5)
- 如何实现一个图片懒加载库
- ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据
- Linux基础学习笔记之如何使vm下centos启动后就自动以root身份登录系统
- C#学习笔记—值类型与引用类型
- numpy的基本用法(五)——numpy array分割
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- 1017. A除以B (20)
- 第二章 2.3
- 跟小博老师一起学习数据库 ——JDBC-中篇
- BZOJ2822: [AHOI2012]树屋阶梯