For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
經(jīng)典的ADO和ADO.NET里的一切都是從Connection(連接)對象開始的。Connection對象表示對數(shù)據(jù)源的唯一物理連接,但是兩者就這么一點(diǎn)相同之處。盡管Connection對象的不同更加復(fù)雜(也就是說,連接是如何處理的),但是這些不同點(diǎn)的范圍是很大的。在經(jīng)典的ADO里,在連接被創(chuàng)建和建立的時(shí)候,應(yīng)用程序能夠按照自己的需要保持這個(gè)連接。事實(shí)上,應(yīng)用程序沒有被限制只能建立一個(gè)連接;它們可以建立多個(gè)連接。但是由于連接是有限的資源,所以這種方法還需要考慮其他一些問題。
ADO.NET對連接采取了不同的方法。連接只被保持足夠長的時(shí)間來完成一項(xiàng)操作。一旦這項(xiàng)操作被完成,Recordset就被立即斷開。命令的結(jié)果被讀入Dataset,在這里這些結(jié)果能夠被處理,即使它們同數(shù)據(jù)源已經(jīng)斷開。雖然經(jīng)典的ADO也能夠進(jìn)行離線處理,但是ADO是一個(gè)極其好的例子,能夠說明有可能同輕易實(shí)現(xiàn)之間的差別。
在ADO.NET里,節(jié)省連接資源的方法同其處理更新的方法是一樣的。當(dāng)Dataset發(fā)生變化的時(shí)候,由于ADO.NET的離線屬性,這些變化不會(huì)立即反映到真實(shí)的表格上。要讓變化“真正地”發(fā)生,你就需要使用DataAdapter對象,它被用來進(jìn)行填充操作以及從Dataset或者對Dataset進(jìn)行更新。
ADO.NET的DataAdapter對象有四個(gè)方法來從數(shù)據(jù)源取回?cái)?shù)據(jù)或者對數(shù)據(jù)源更新數(shù)據(jù)。這些方法是:SelectCommand、InsertCommand、UpdateCommand和DeleteCommand。這些方法最好的地方是:一旦知道了名稱,你就它們能夠做什么了。
說再見
在經(jīng)典的ADO里,Recordset曾是訪問數(shù)據(jù)的主要方法。它就像執(zhí)行查詢一樣簡單,使用從一個(gè)或者多個(gè)表格請求得來的列就能夠創(chuàng)建一個(gè)Recordset。在多個(gè)行(記錄)被返回的情況下,就要通過使用move、moveNext、movePrevious、moveLast或者moveFirst這些方法來實(shí)現(xiàn)導(dǎo)航。當(dāng)然不是所有這些方法都能使用,因?yàn)槭褂昧酥荒芟蚯暗闹羔?forward-only cursor),所以在這種情況下只能允許使用moveNext、moveLast和move(如果向前移動(dòng))。
在ADO.NET里,Recordset已經(jīng)被取消了,而指針也只留有其概念。它們已經(jīng)被提供相同功能的數(shù)據(jù)類所取代。例如,我用過的大多數(shù)經(jīng)典的ADO指針都是只能向前、只讀的,因?yàn)槲沂悄切┫嘈抛詈帽M快就能完成輸入輸出的開發(fā)人員之一。隨著ADO.NET的出現(xiàn),由DataReader對象提供了只能向前的、只讀的指針?biāo)峁┑墓δ堋?
新的特性和改進(jìn)的內(nèi)容
ADO.NET最可吹噓的特性是其數(shù)據(jù)訪問的離線方法,這是可以得到證明的。但是這也是受到誤解最多的特性之一。在我當(dāng)前被分配設(shè)計(jì)ASP網(wǎng)上商店的時(shí)候,在有些會(huì)議上,只要.NET一被提到,馬上就會(huì)引起激烈的爭論。
為什么會(huì)引起激烈的爭論?嗯,Dataset駐留在內(nèi)存里的觀念曾經(jīng)被理解為“整個(gè)數(shù)據(jù)庫都被保存在客戶機(jī)器的內(nèi)存里”。消除這種看法需要花上一些時(shí)間,但是最終,持這種看法的人都被說服,因?yàn)樗麄兞私獾紸DO.NET和ASP.NET都不會(huì)這樣工作,當(dāng)然,除非要求它們這樣做。
ADO.NET對象駐留內(nèi)存的性質(zhì)是其強(qiáng)項(xiàng)。它提供了操控?cái)?shù)據(jù)的強(qiáng)大能力,在經(jīng)典ADO里如此操控?cái)?shù)據(jù)曾經(jīng)是很困難的,如果不是不可能的話。ADO.NET和XML現(xiàn)在相互進(jìn)行了集成。對于ADO來說,使用ADO的Recordset來生成XML文檔是相對容易的,但是反過來就沒有那么容易了。要從一個(gè)XML文檔生成一個(gè)ADO的Recordset需要大量的代碼。但是由于ADO.NET和XML進(jìn)行了相互集成,因此使用XmlDataDocument就能夠進(jìn)行相互轉(zhuǎn)換。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!