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