傳輸ADO對(duì)象結(jié)構(gòu)化數(shù)據(jù)詳細(xì)說(shuō)明
本文主要講述ADO對(duì)象,怎樣創(chuàng)建ADO對(duì)象項(xiàng)目。這些內(nèi)容都是一些門(mén)戶網(wǎng)站和技術(shù)論壇找到的,中間可能有不少錯(cuò)誤是我沒(méi)有挑出的,歡迎大家指正,所以大家有communitysever的可以從里面獲得然后反編譯為自己所用,沒(méi)有的就到網(wǎng)絡(luò)上搜下吧,有許多資源呢!
.NET提供了一個(gè)XmlDataDocument類(lèi),它擴(kuò)展了XmlDocument類(lèi)。XmlDocument類(lèi)不僅可以將XML文檔載入內(nèi)存的文檔樹(shù)中,還可以通過(guò)XmlDataDocument對(duì)象的DataSet屬性存儲(chǔ)、獲取和操縱這些結(jié)構(gòu)化的數(shù)據(jù)。
DataSet對(duì)象在傳輸時(shí)是以XML流的形式,而不是用ADO中的Recordset對(duì)象的COM對(duì)象的形式,這使得在異構(gòu)系統(tǒng)間傳遞數(shù)據(jù)更為方便。DataSet對(duì)象具有非常多的XML操作特性,通過(guò)它讀取XML數(shù)據(jù)文件或數(shù)據(jù)流,從而將樹(shù)型層次結(jié)構(gòu)的XML數(shù)據(jù)轉(zhuǎn)換為關(guān)系型數(shù)據(jù)結(jié)構(gòu)的形式。
對(duì)于樹(shù)型層次結(jié)構(gòu)的XML數(shù)據(jù),要使用DOM對(duì)象模型來(lái)描述和操縱;對(duì)關(guān)系表要使用表(DataTable)、列(DataColumn)、行(DataRow)等對(duì)象來(lái)描述和操縱。這樣,就可以使用.NET提供的DataSet對(duì)象和XmlDataDocument對(duì)象從二個(gè)不同的角度操縱內(nèi)存中的同一數(shù)據(jù)。
要對(duì)XML的數(shù)據(jù)集進(jìn)行操作,首先要加載XML文件。ADO對(duì)象有XSD Schema數(shù)據(jù)模式文件、XML無(wú)內(nèi)聯(lián)模式數(shù)據(jù)文件、XML內(nèi)聯(lián)模式數(shù)據(jù)文件等類(lèi)型。讀取XSD Schema數(shù)據(jù)模式文件可以使用DataSet對(duì)象的ReadXmlSchema方法從XSD文件或流中導(dǎo)入數(shù)據(jù)。#t#
ReadXmlSchema方法有多個(gè)重載版本,可以接受Stream、String、Textreader和XmlReader對(duì)象。通過(guò)這些對(duì)象中的任意一個(gè)可以告訴ReadXmlSchema方法從哪個(gè)XSD Schema文件或流中獲取Schema。
這種方法只能獲取XML數(shù)據(jù)的組織模式,而不能獲取XML數(shù)據(jù)。要讀取XML數(shù)據(jù)文件可以使用DataSet對(duì)象的ReadXml方法從XML文件或流中導(dǎo)入數(shù)據(jù)。在讀取的XML數(shù)據(jù)文件中,如果包含Schema數(shù)據(jù)組織方式,則這種方法可以在讀取ADO對(duì)象的同時(shí)使用內(nèi)聯(lián)的XSD Schema獲取XML數(shù)據(jù)組織方式;如果在XML文件中不存在內(nèi)聯(lián)的Schema模式,則ReadXml方法會(huì)根據(jù)XML數(shù)據(jù)嘗試推斷的方法來(lái)生成Schema;如果在給定的XML數(shù)據(jù)中無(wú)法推斷出Schema,則會(huì)拋出異常。例如: