ADO.NET与XML的结合
ADO.NET在DataSet中提供對(duì)XML的廣泛支持.下面是使用XML和ADO.NET的一些技巧信息。
I.DataSet和XML
??????? DataSet和XML的完美整合,可以使你完成以下事情:
??????????? ①?gòu)腦SD計(jì)劃中載入一個(gè)DataSet的計(jì)劃或相關(guān)結(jié)構(gòu);
??????????? 下面的例子說(shuō)明一個(gè)XSD文件的結(jié)構(gòu),其中MyDataSet就是我們的DataSet元素,它下面包含一個(gè)customers復(fù)合類(lèi)型元素,有了它我們就可以映射創(chuàng)建一個(gè)這樣的表:Customers (CustomerID,CompanyName,Phone),同時(shí)也定義我們的DataSet的計(jì)劃或者結(jié)構(gòu):
②從XML文件中載入一個(gè)DataSet的內(nèi)容;
??????????? 要從XML文件填充DataSet的內(nèi)容,請(qǐng)使用DataSet對(duì)象的ReadXml方法。下面的例子說(shuō)明如何從一個(gè)XML文件讀取數(shù)據(jù)到一個(gè)DataSet:
?
DataSet myDS = new DataSet();
myDS.ReadXml("input.xml", XmlReadMode.ReadSchema);
③當(dāng)沒(méi)有提供計(jì)劃時(shí)從一個(gè)XML文件的內(nèi)容中推斷一個(gè)DataSet的計(jì)劃;
??????????? 要從一個(gè)XML文件載入DataSet的計(jì)劃信息,你可以使用DataSet對(duì)象的ReadXmlSchema方法。如果沒(méi)有提供計(jì)劃,你還可以使用InferXmlSchema從XML文件推斷DataSet的計(jì)劃,下面的例子介紹如何通過(guò)InferXmlSchema從一個(gè)XML文件推斷出DataSet的計(jì)劃:
?
DataSet myDS = new DataSet();
myDS.InferXmlSchema("input_od.xml", new string[] "urn:schemas-microsoft-com:officedata");
④象XSD格式計(jì)劃一樣寫(xiě)一個(gè)DataSet的計(jì)劃;
??????????? 下面的例子展示如何通過(guò)ReadXmlSchema從一個(gè)XSD文件載入DataSet的計(jì)劃:
?
DataSet myDS = new DataSet();
myDS.ReadXmlSchema("schema.xsd");
⑤象XML格式文件一樣讀寫(xiě)一個(gè)DataSet的內(nèi)容。
??????????? 利用DiffGrams從DataSet中讀寫(xiě)內(nèi)容,下面的例子顯示在提交更改之前更新表中一行數(shù)據(jù)的結(jié)果,其中CustomerID為ALFKI的那一行數(shù)據(jù)被修改但是還沒(méi)有更新:
?
<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>
轉(zhuǎn)載于:https://www.cnblogs.com/superfang/archive/2008/07/03/1234575.html
總結(jié)
以上是生活随笔為你收集整理的ADO.NET与XML的结合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面向对象理论(6)-Interface
- 下一篇: 【Vegas原创】将treeview父结