ADO.NET与XML的结合
ADO.NET在DataSet中提供對XML的廣泛支持.下面是使用XML和ADO.NET的一些技巧信息。
I.DataSet和XML
??????? DataSet和XML的完美整合,可以使你完成以下事情:
??????????? ①從XSD計劃中載入一個DataSet的計劃或相關結構;
??????????? 下面的例子說明一個XSD文件的結構,其中MyDataSet就是我們的DataSet元素,它下面包含一個customers復合類型元素,有了它我們就可以映射創建一個這樣的表:Customers (CustomerID,CompanyName,Phone),同時也定義我們的DataSet的計劃或者結構:
②從XML文件中載入一個DataSet的內容;
??????????? 要從XML文件填充DataSet的內容,請使用DataSet對象的ReadXml方法。下面的例子說明如何從一個XML文件讀取數據到一個DataSet:
?
DataSet myDS = new DataSet();
myDS.ReadXml("input.xml", XmlReadMode.ReadSchema);
③當沒有提供計劃時從一個XML文件的內容中推斷一個DataSet的計劃;
??????????? 要從一個XML文件載入DataSet的計劃信息,你可以使用DataSet對象的ReadXmlSchema方法。如果沒有提供計劃,你還可以使用InferXmlSchema從XML文件推斷DataSet的計劃,下面的例子介紹如何通過InferXmlSchema從一個XML文件推斷出DataSet的計劃:
?
DataSet myDS = new DataSet();
myDS.InferXmlSchema("input_od.xml", new string[] "urn:schemas-microsoft-com:officedata");
④象XSD格式計劃一樣寫一個DataSet的計劃;
??????????? 下面的例子展示如何通過ReadXmlSchema從一個XSD文件載入DataSet的計劃:
?
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í&shy;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>
轉載于:https://www.cnblogs.com/superfang/archive/2008/07/03/1234575.html
總結
以上是生活随笔為你收集整理的ADO.NET与XML的结合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象理论(6)-Interface
- 下一篇: 【Vegas原创】将treeview父结