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