zoukankan      html  css  js  c++  java
  • ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据

    本文演示如何使用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>
    原文链接:
  • 相关阅读:
    Vue 项目结构介绍
    使用命令行创建 Vue 项目
    GitHub无法访问怎么办?-- 已解决
    Spa 单页面应用简介
    JetBrains WebStorm 常用快捷键总结
    使用 WebStorm + Vue 写一个九九乘法表
    使用 WebStorm 2018 运行第一个 Vue 程序
    小工具
    elasticsearch安装部署
    命令行连接ftp
  • 原文地址:https://www.cnblogs.com/JavCof/p/3445880.html
Copyright © 2011-2022 走看看