ADO.NET與XML的結合(c#)

來源:互聯網
上載者:User
 ADO.NET在DataSet中提供對XML的廣泛支援.下面是使用XML和ADO.NET的一些技巧資訊。
 I.DataSet和XML

        DataSet和XML的完美整合,可以使你完成以下事情:

            ①從XSD計劃中載入一個DataSet的計劃或相關結構;

            下面的例子說明一個XSD檔案的結構,其中MyDataSet就是我們的DataSet元素,它下麵包含一個customers複合類型元素,有了它我們就可以映射建立一個這樣的表:Customers (CustomerID,CompanyName,Phone),同時也定義我們的DataSet的計劃或者結構:

<xs:schema id="SomeID"

             xmlns=""

             xmlns:xs="http://www.w3.org/2001/XMLSchema"

             xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

    <xs:element name="MyDataSet" msdata:IsDataSet="true">

      <xs:complexType>

        <xs:choice maxOccurs="unbounded">

          <xs:element name="customers" >

            <xs:complexType >

              <xs:sequence>

                <xs:element name="CustomerID" type="xs:integer"

                             minOccurs="0" />

                <xs:element name="CompanyName" type="xs:string"

                             minOccurs="0" />

                <xs:element name="Phone" type="xs:string" />

              </xs:sequence>

            </xs:complexType>

           </xs:element>

        </xs:choice>

      </xs:complexType>

    </xs:element>

  </xs:schema>

            ②從XML檔案中載入一個DataSet的內容;

            要從XML檔案填充DataSet的內容,請使用DataSet對象的ReadXml方法。下面的例子說明如何從一個XML檔案讀取資料到一個DataSet:
‘C#

DataSet myDS = new DataSet();

myDS.ReadXml("input.xml", XmlReadMode.ReadSchema);

            ③當沒有提供計劃時從一個XML檔案的內容中推斷一個DataSet的計劃;

            要從一個XML檔案載入DataSet的計劃資訊,你可以使用DataSet對象的ReadXmlSchema方法。如果沒有提供計劃,你還可以使用InferXmlSchema從XML檔案推斷DataSet的計劃,下面的例子介紹如何通過InferXmlSchema從一個XML檔案推斷出DataSet的計劃:

‘C#

DataSet myDS = new DataSet();

myDS.InferXmlSchema("input_od.xml", new string[] "urn:schemas-microsoft-com:officedata");

            ④象XSD格式計劃一樣寫一個DataSet的計劃;

            下面的例子展示如何通過ReadXmlSchema從一個XSD檔案載入DataSet的計劃:

‘C#

DataSet myDS = new DataSet();

myDS.ReadXmlSchema("schema.xsd");

            ⑤象XML格式檔案一樣讀寫一個DataSet的內容。

            利用DiffGrams從DataSet中讀寫內容,下面的例子顯示在提交更改之前更新表中一行資料的結果,其中CustomerID為ALFKI的那一行資料被修改但是還沒有更新:

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">

  <CustomerDataSet>

    <Customers diffgr:id="Customers1" msdata:rowOrder="0" diffgr:hasChanges="modified">

      <CustomerID>ALFKI</CustomerID>

      <CompanyName>New Company</CompanyName>

    </Customers>

    <Customers diffgr:id="Customers2" msdata:rowOrder="1" diffgram:hasErrors="true">

      <CustomerID>ANATR</CustomerID>

      <CompanyName>Ana Trujillo Emparedados y helados</CompanyName>

    </Customers>

    <Customers diffgr:id="Customers3" msdata:rowOrder="2">

      <CustomerID>ANTON</CustomerID>

      <CompanyName>Antonio Moreno Taquería</CompanyName>

    </Customers>

    <Customers diffgr:id="Customers4" msdata:rowOrder="3">

      <CustomerID>AROUT</CustomerID>

      <CompanyName>Around the Horn</CompanyName>

    </Customers>

  </CustomerDataSet>

  <diffgr:before>

    <Customers diffgr:id="Customers1" msdata:rowOrder="0">

      <CustomerID>ALFKI</CustomerID>

      <CompanyName>Alfreds Futterkiste</CompanyName>

    </Customers>

  </diffgr:before>

  <diffgr:errors>

    <Customers diffgr:id="Customers2" diffgr:Error="An optimistic concurrency violation has occurred for this row."/>

  </diffgr:errors>

</diffgr:diffgram>

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.