讲述ADO.NET架构和ADO的差异有关文章
创始人
2024-06-19 00:21:05
0

虽然有许多人对ADO.NET架构的安全性表示怀疑,但在年复一年的不断发展中,他的安全性也在不断提高。保障ADO.NET架构的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET架构,及他是怎么运作的。

ADO.NET架构可以讓.NET上的任何程式語言能夠連接並存取關聯式資料庫與非資料庫型資料來源(例如 XML,Excel或是文字檔資料),或是獨立出來作為處理應用程式資料的類別物件,其在.NET Framework中的地位是舉足輕重,許多人將ADO.NET視為ADO的下一個版本,但其實它是一個全新的架構、產品與概念。

ADO.NET架构

ADO.NET架构(object model)有五個主要的對象,分別是Connection對象,Command對象,DataAdpter對象,Dataset對象以及 DataReader對象.這些對象中負責建立連線和數據操作的部分我們稱為‘數據操作對象’(Managed Provider),分別由Connection對象,Command對象,DataAdpter對象以及DataReader對象所組成。數據操作對象 最主要是當作Dataset對象以及數據源之間的橋梁,負責將數據源中的數據取出後存入Dataset對象中管理,以及將數據存回數據源的工作。

Connection對象 : 可以開啟程式和數據源之間的連接。沒有利用connection對象將數據源打開,則無法從數據源中取得數據。 Command對象: 用來對數據源發出指令,如對數據源下達查詢,新增,修改,刪除數據等指令。#t#

DataAdpter對象: 主要是在數據源以及Dataset之間執行資料傳輸的工作,它可以透過command下達命令后,將取得的資料存入dataset中管理。 Dataset對象: 可以視作一個緩沖區(cache),可以把從數據源中所查詢得到的資料保留起來,甚至可以將整個數據源內的資料顯示出來。ADO.NET架构不但可以儲存多個table,還可以透過DataAdpter對象取得一些如主鍵等的數據表結構,并可以記錄表間的關聯。

 DataReader 對象: 若只需要循序讀取數據源中的資料而不需要其他操作,ADO.NET架构可以使用DataReader對象。DataReader對象讀取是一次一筆,向下循序讀取數據源中的 資料,而且被DataReader對象所趨會的數據是唯讀的(read only),并不允許作其他操作。

各部件之间的关系如图下图所示:

ADO.NET架构和ADO的差異

對於 ADO 的開發人員來說,最明顯的變化在於以往 ADO 中的 Recordset 消失了,並且明確的分開為連線型的 DataReader 以及離線型的 DataSet 與 DataTable,並且發展支援離線型資料來源的瀏覽工具 DataView, 這樣的改變,讓習慣使用 ADO 的 VB/ASP 開發人員會有某種程度的不習慣,同時讓ADO.NET架构的學習會較 ADO 有較些許的複雜性,因此有部分新入門或是VB 6.0/ASP開發人員會在學習.NET Framework或是使用VB.NET開發應用程式時,在 .NET Framework 中使用 ADO 來連接資料來源。但在 .NET Framework 應用程式使用 ADO.NET架构的話,.NET Framework會因為要多一層COM和.NET資料之間的轉換,會讓應用程式效能有少部分的損耗。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...