ADONET 對象模型中有五個主要的組件分別是Connection 對象Command 對象DataSetCommandDataSet 以及DataReader這些組件中 負責建立聯機和數據操作的部分
我們稱為數據操作組件(Managed Providers) 分別由Connection 對象Command 對象DataSetCommand 對象以及DataReader 對象所組成數據操作組件最主要是當作DataSet 對象以及數據源之間的橋梁負責將數據源中的數據取出後植入DataSet 對象中以及將數據存回數據源的工作
Connection對象
Connection 對象主要是開啟程序和數據庫之間的連結沒有利用連結對象將數據庫打開是無法從數據庫中取得數據的這個物件在ADONET 的最底層我們可以自己產生這個對象或是由其它的對象自動產生
Command對象
Command 對象主要可以用來對數據庫發出一些指令例如可以對數據庫下達查詢新增修改刪除數據等指令以及呼叫存在數據庫中的預存程序等這個對象是架構在Connection 對象上也就是Command 對象是透過連結到數據源的Connection 對象來下命令的所以Connection連結到哪個數據庫Command 對象的命令就下到哪裡
DataSetCommand對象
DataSetCommand 對象主要是在數據源以及DataSet 之間執行數據傳輸的工作它可以透過
Command 對象下達命令後並將取得的數據放入DataSet 對象中這個對象是架構在Command對象上並提供了許多配合DataSet 使用的功能在Beta 版中DataSetCommand 物件會更名為DataAdapter
DataSet對象
DataSet 這個對象可以視為一個暫存區(Cache)可以把從數據庫中所查詢到的數據保留起來甚至可以將整個數據庫顯示出來DataSet 的能力不只是可以儲存多個Table還可以透過DataSetCommand 對象取得一些例如主鍵等的數據表結構並可以記錄數據表間的關聯
DataSet 對象可以說是ADONET 中重量級的對象這個對象架構在DataSetCommand 對象上本身 不具備和數據源溝通的能力 也就是說我們是將DataSetCommand 對象當做DataSet 對象以及數據源間傳輸數據的橋梁
DataReader對象
當我們只需要循序的讀取數據而不需要其它操作時可以使用DataReader 對象DataReader
對象只是一次一筆向下循序地讀取數據源中的數據不作其它的操作因為DataReader 在讀取數據的時候限制了每次只讀取一筆而且只能只讀所以使用起來不但節省資源而且效率很好此外因為不用把數據全部傳回故可以降低網絡的負載
ADONET 的數據操作組件(Managed Providers)
ADONET 的數據存取和之前的版本不一樣前版的ADO 存取數據的方式只有一種那就是透過OLE DB 來存取數據而現在的ADONET 則分為兩種一種是直接存取MS SQL Server 中的數據另一種是透過OLE DB 來存取其它數據庫中的數據前面我們提過 要存取數據源中的數據要透過數據操控組件 這個數據操作組件就是Connection 對象Command 對象DataSetCommand 對象以及DataReader 對象由於我們可以選擇透過OLE DB 和資料源聯機或是和MS SQL Server 直接聯機所以 ASPNET 提供了兩組數據操作組件分別為ADO 數據操作組件以及SQL 數據操作組件
每組數據操作組件內都有Connection 對象Command 對象DataSetCommand 對象及
DataReader 對象這兩種數據操作組件雖然針對的數據源不一樣但是這些對象的架構都一樣例如ADOConnection 和SQLConnection 對象雖然一個是針對OLE DB而另一個是針對MS SQLServer但是這兩個對象都有一樣的屬性事件及方法所以使用起來並不會造成困擾只要針對所要建立的數據源種類來選擇ADO 數據操作組件或是SQL 數據操作組件就可以了雖然我們也可以透過OLE DB 來存取MS SQL Server 中的資料但是透過SQL 類別對象來存取MS SQL Server 中的數據效率最好這是因為SQL 類別不經過OLE DB 這一層而是直接呼叫MS SQL Server 中的API所以效率比較好ADONET 對於這兩種數據存取方式所使用的對象完全不一樣在使用的時候必須要特別注意
From:http://tw.wingwit.com/Article/program/net/201311/15600.html