讲述ADO.NET架构和ADO的差异有关文章

开发 后端
ADO.NET架构是微軟在.NET Framework中負責資料存取的類別庫集,它是使用在COM時代奠基的OLE DB技術以及.NET Framework的類別庫和程式語言來發展的。

虽然有许多人对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資料之間的轉換,會讓應用程式效能有少部分的損耗。

责任编辑:chenqingxiang 来源: 清华大学出版社
相关推荐

2009-11-12 11:38:03

ADO.NET连接事件

2009-12-18 16:44:57

ADO.NET统计

2009-12-30 14:21:21

ADO.NET设置

2009-12-29 14:01:45

ADO.NET Sql

2009-12-28 15:11:36

ADO.NET专家

2011-05-20 11:31:07

ADO.NET

2009-12-25 16:36:43

ADO.NET数据集

2009-12-18 16:39:59

ADO.NET基础类

2010-01-04 17:27:15

ADO.NET异步操作

2009-11-03 16:37:10

2009-08-13 11:22:59

LINQ和ADO.NE

2009-12-24 11:19:07

ADO.NET的架构

2009-11-11 13:59:15

ADO.NET与ADO

2009-09-14 13:37:25

LINQ ADO.NE

2011-06-02 09:39:29

ADO.NET

2009-11-03 17:25:59

ADO.NET编程技巧

2009-10-29 13:34:01

ADO.NET对象

2009-11-12 10:32:47

ADO.NET技术

2009-11-12 13:26:56

使用ADO.NET参数

2009-11-12 14:37:26

ADO.NET结构
点赞
收藏

51CTO技术栈公众号