快速ADO.NET入門詳細(xì)介紹
學(xué)習(xí)每門技術(shù)都是由淺入深,這里我們就從ADO.NET入門開(kāi)始吧,希望可以給大家開(kāi)個(gè)好頭。ADO.NET提供了一個(gè)統(tǒng)一的編程模式和一組公用的類來(lái)進(jìn)行任何類型的數(shù)據(jù)訪問(wèn),而不管你用何種語(yǔ)言來(lái)開(kāi)發(fā)代碼。ADO.NET是全新的,但又與ADO盡可能保持一致,它使編程模式從一個(gè)客戶端/服務(wù)器、基于連接的模式轉(zhuǎn)變到了一個(gè)新的模式,這個(gè)新模式可以讓斷開(kāi)的前端下載記錄、離線工作、然后重新連接來(lái)提交變化。ADO.NET是WinForms應(yīng)用程序、ASP.NET應(yīng)用程序和Web Services的一個(gè)共有的特點(diǎn)。其功能可以跨LAN和Internet連接來(lái)實(shí)現(xiàn),可以在有狀態(tài)(stateful)和無(wú)狀態(tài)(stateless)情況下實(shí)現(xiàn)。
這就意味著,作為一個(gè)共有的技術(shù),ADO.NET的對(duì)象在所有可能的環(huán)境中并不是同等強(qiáng)大的。用ADO.NET為一個(gè)富客戶端(rich client)構(gòu)建一個(gè)數(shù)據(jù)層同為一個(gè)客戶端通常是共享的和重要的實(shí)體(如Web服務(wù)器)的Web應(yīng)用程序構(gòu)建一個(gè)數(shù)據(jù)層并不一樣。
#T#如果你從前是個(gè)ADO開(kāi)發(fā)人員,現(xiàn)在已經(jīng)用ADO.NET了,那么你可能把數(shù)據(jù)訪問(wèn)看做是一個(gè)***的對(duì)象,如Recordset。我們很自然地會(huì)將舊的對(duì)象模式同新的對(duì)象模式匹配起來(lái),并將現(xiàn)有的方法用于.NET應(yīng)用程序。然而,在ADO環(huán)境中的某些好的方法在轉(zhuǎn)換到ADO.NET環(huán)境時(shí)就可能并不強(qiáng)大了。而且,看起來(lái)很微不足道的ADO.NET對(duì)象模式的復(fù)雜性可能會(huì)導(dǎo)致很糟糕的編程情況、不理想的代碼、甚至是功能不能實(shí)現(xiàn)。我將講述在 ADO.NET編程中可能會(huì)給你帶來(lái)麻煩的10個(gè)方面,并提供技巧和解決方法來(lái)避免它們。
ADO.NET入門運(yùn)用字符串來(lái)串行化擴(kuò)展的屬性
幾個(gè)ADO.NET對(duì)象都擁有一個(gè)叫做ExtendedProperties的集合。該屬性就像收集貨物(cargo collection)一樣,可以用來(lái)存儲(chǔ)任何類型的用戶信息。DataSet、DataTable和DataColumn就是可以提供該數(shù)據(jù)成員的類。ADO.net通過(guò)運(yùn)用PropertyCollection類封裝的一個(gè)哈希表來(lái)實(shí)現(xiàn)這個(gè)ExtendedProperties屬性。你可以用Add方法將數(shù)據(jù)插入到集合中。Add方法使用了兩個(gè)參數(shù)來(lái)保存數(shù)據(jù)——key和value。該方法的原形將參數(shù)定義為通用的對(duì)象類型,你可以存儲(chǔ)任何類型的信息。然而,在特殊情況下,你應(yīng)該特別注意那些被保存為擴(kuò)展屬性的對(duì)象的類型。
如果你想將包含擴(kuò)展屬性的ADO.NET對(duì)象串行化到XML,***只用字符串。如果不行,你必須對(duì)ADO.NET的內(nèi)在的serializer的行為采取對(duì)策。
當(dāng)ADO.NET將一個(gè)DataSet對(duì)象保存到XML時(shí),ExtendedProperties 集合的內(nèi)容就被串行化到內(nèi)存中了,但大概是出于性能的原因,ADO.NET運(yùn)用了ToString方法,而不是XML serializer來(lái)實(shí)現(xiàn)串行化。更重要的是,當(dāng)ADO.NET對(duì)象被讀回并復(fù)原時(shí),ExtendedProperties集合包含的是對(duì)象的字符串表現(xiàn)形式,而不是對(duì)象本身。以上就是關(guān)于ADO.NET入門的簡(jiǎn)單介紹,希望對(duì)大家有幫助。