ADO.NET的結構——ADO.NET學習&應用筆記之一

ADO.NET的核心組件由Data Provider模塊和DataSet模塊組成。Data Provider程序庫實現數據的連接、操作和對數據快速只進只讀訪問。DataSet實現獨立於數據源的數據訪問、操作,有點類似於ADO的斷開連接的靜態數據集。

ADO.NET的結構圖如下:
o_ADO.NET1.gif


一、.NET Framework Data Provider
.NET Framework數據提供程序是一組連接數據源,並且能夠對數據執行命令,獲取數據的程序結構。

(一).NET Framework的四個數據提供程序
.NET Framework提供了四組數據提供程序,用於訪問四類數據源。
1、SQL Server .NET Framework數據提供程序,該程序只能訪問MS SQL Server7.0或更高版本,更早版本的只能通過OLE DB數據提供程序訪問。它的命名空間爲System.Data.SqlClient。
2、OLE DB .NET Framework 數據提供程序,用於訪問OLE DB數據提供程序,該程序不支持OLE DB 2.5版接口。它的命名空間爲System.Data.OleDb。
3、ODBC .NET Framework 數據提供程序。用於訪問ODBC數據提供程序。它的命名空間爲System.Data.Odbc。
4、Oracle .NET Framework 數據提供程序。用於訪問Oracle數據,該程序需要Oracle客戶端軟件8.1.7或更高版本的支持。它的命名空間爲System.Data.OracleClient。

通過對IDbConnection接口、IDbCommand接口、IDataAdapter接口、IDbDataAdapter接口、IDataReader接口、IDataParameter接口、IDbTransaction接口等的實現我們也可以編寫自己的數據提供程序組。


(二).Net數據提供程序的四個核心對象
.Net數據提供程序通常包含有四個核心對象:
1、Connection 對象提供與數據源的連接。數據提供程序的Connection類是繼承System.Data.IDbConnection接口的實現。
2、Command對象使您能夠訪問用於返回數據、修改數據、運行存儲過程以及發送或檢索參數信息的數據庫命令。數據提供程序的Command類是繼承System.Data.IDbCommand接口的實現。
3、DataReader 從數據源中提供高性能的數據流。DataReader的數據流是隻進且只讀的。數據提供程序的DataReader類是繼承System.Data.IDataReader接口的實現。
4、DataAdapter 提供連接DataSet對象和數據源的橋樑。DataAdapter 使用Command 對象在數據源中執行 SQL 命令,以便將數據加載到 DataSet 中,並使對 DataSet中數據的更改與數據源保持一致。數據提供程序的DataAdapter類是繼承System.Data.IDbDataAdapter接口的實現。
.Net數據提供程序還包括Transaction對象、Parameter對象等。


二、.NET Framework DataSet
連接、命令、事務、數據讀取作用於特定的提供程序,唯有數據集可以獨立於特定的數據提供的,在.NET Framework中數據集對象DataSet的命名空間位於System.Data中。

(一)、DataSet對象模型
DataSet對象是支持ADO.NET的斷開式、分佈式數據方案的核心對象。DataSet是數據的內存駐留表示形式,無論數據源是什麼,它都會提供一致的關係編程模型。你可以把它想象成一個濃縮在內存當中的關係數據庫。它的對象模型如下圖:
o_ADO.NET2.gif

DataSet包含三組集合:
(1)、DataTableCollection。關係數據庫當中最主要的對象就是Table,那麼在DataSet當中使用該集合來包含多個DataTable對象。DataTable就是是在內存中的數據表,你可以通過唯一名稱來標識一個表。DataSet的DataTable可存儲的最大行數是16,777,216。
(2)、DataRelationCollection。在關係數據庫當中除了表之外,還有表示表和表之間的關係Relation。該集合就是包含表關係對象的集合。
(3)、ExtendedProperties。該是一組自定義信息,概念上點類似於ASP的Session之類的。


(二)、DataSet與DataAdapter
DataAdapter對象是數據提供程序和DataSet連接的橋樑。數據提供程序的DataAdapter類是IDataAdapter或者IDbDataAdapter的實現。通常DataAdapter的構造函數是:
XxxDataAdapter(SqlCommand selectCommand)
XxxDataAdapter(String selectCommandText, String selectConnectionString)
XxxDataAdapter(String selectCommandText, SqlConnection selectConnection)

DataAdapter通過實現Fill、FillSchema將數據源數據、架構等添加到DataSet中,通過實現Update將DataSet中的數據更新到數據源中。

 

相關資源:
1、.NET Framework SDK之ADO.NET概述
2、《類似數據庫的數據容器(深入研究數據訪問)》 Dino Esposito
http://www.microsoft.com/china/MSDN/library/data/dataAccess/Database-like%20Data%20Containers.mspx
3、《剖析 .NET 託管提供程序》 Dino Esposito
http://www.microsoft.com/china/MSDN/library/data/dataAccess/Inside.NETManagedProviders.mspx
4、MSDN數據訪問專欄
http://www.microsoft.com/library/mnp/2/aspx/framesmenu.aspx?url=/china/MSDN/library/data/default.mspx

發佈了75 篇原創文章 · 獲贊 0 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章