ADO与ADO.NET 的区别
前面也分別對(duì)ADO和ADO.NET進(jìn)行概述,從前面的兩篇文章來(lái)看,我們都知道ADO與ADO.NET 都是一種數(shù)據(jù)庫(kù)訪問(wèn)的方式,都是從最基本的Connection(連接)對(duì)象開(kāi)始的,可以說(shuō)ADO.NET是ADO的一種改進(jìn)版,在ADO的基礎(chǔ)之上ADO.NET 統(tǒng)一了數(shù)據(jù)容器類(lèi)編程接口,無(wú)論你打算用哪種編寫(xiě)哪種應(yīng)用程序,都可以通過(guò)同一組類(lèi)來(lái)處理數(shù)據(jù) 。
在ADO的基礎(chǔ)上,ADO.NET做了很多的改進(jìn),以下是它們區(qū)別:
1.對(duì)象不同:
ADO使用的是OLEDB接口并基于微軟的COM技術(shù),而ADO.NET有自己的ADO.NET接口并且基于微軟的.NET體系架構(gòu)。
2.存儲(chǔ)對(duì)象不同:
ADO以Recordset記錄集形式進(jìn)行存放,ADO.NET是以DateSet數(shù)據(jù)集形式進(jìn)行存放。記錄集看起來(lái)更像一個(gè)單表,如果要讓Recordset以多表的方式就必須在SQL中進(jìn)行多表連接,反之,數(shù)據(jù)集是一個(gè)或多個(gè)表的集合,它就相當(dāng)于是內(nèi)存中的一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)內(nèi)存放的是DataTable對(duì)象,也就是我們平時(shí)所說(shuō)的表。
3.連接方式不同:
ADO在與數(shù)據(jù)庫(kù)連接后,會(huì)一直保持連接,直到斷開(kāi)(為連接而設(shè)計(jì))。而ADO.NET讀取完所需要數(shù)據(jù)之后,會(huì)自動(dòng)斷開(kāi)連接。當(dāng)需要更新數(shù)據(jù)時(shí),會(huì)再次連接。也就是說(shuō)ADO.NET讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)有兩種方式:一種是基于在線的連接方式,一種是基于離線的非連接方式。為什么會(huì)有這兩種方式呢?我想主要是由于ADO.NET 取消了以往的Recordset 對(duì)象,而采用DataSet的緣故吧。
Dataset,它相當(dāng)于是內(nèi)存中的一個(gè)數(shù)據(jù)庫(kù),它是不依賴(lài)與數(shù)據(jù)庫(kù)的獨(dú)立數(shù)據(jù)集合,所謂獨(dú)立就是說(shuō),即使是斷開(kāi)數(shù)據(jù)鏈路或者是關(guān)閉數(shù)據(jù)庫(kù),它仍然是可以使用的。Dataset內(nèi)部是用XML(可擴(kuò)展標(biāo)記語(yǔ)言)來(lái)描述數(shù)據(jù)的。在訪問(wèn)數(shù)據(jù)的時(shí)候,ADO.NET會(huì)利用XML制作數(shù)據(jù)的一份副本,也就是說(shuō)只有在這段時(shí)間內(nèi)是需要在線的。而在ADO中,xml只不過(guò)是一種輸入和輸出格式。
此外:由于Dataset內(nèi)部是用XML(可擴(kuò)展標(biāo)記語(yǔ)言)格式來(lái)描述數(shù)據(jù)的,所以ADO.NET對(duì)數(shù)據(jù)類(lèi)型沒(méi)有限制。而Com技術(shù)要求使用的數(shù)據(jù)類(lèi)型必須是符合Com規(guī)范,所以ADO對(duì)數(shù)據(jù)類(lèi)型有限制要求。
總結(jié)
以上是生活随笔為你收集整理的ADO与ADO.NET 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 宠物合成养成游戏养猫养牛流量主小程序开发
- 下一篇: ADO与ADO.NET的区别