複製鏈接
請複製以下鏈接發送給好友

DataAdapter

鎖定
DataSet對象表示數據源中數據的本地副本,它是Microsoft NET Framework的一個主要創新。DataSet對象本身可用來引用數據源,然而為了擔當真正的數據管理工具,DataSet必須能夠與數據源交互。為了實現該功能,.NET提供了DataAdapter類。
外文名
DataAdapter
命名空間
System.Data.Common
程序集
System.Data
類    型
計算機語法

DataAdapter語法

DataAdapter表示一組 SQL 命令和一個數據庫連接,它們用於填充 DataSet和更新數據源
命名空間:System.Data.Common
程序集:System.Data(在 system.data.dll 中)
public class DataAdapter : Component, IDataAdapter

DataAdapter原理

DataAdapter對象充當DataSet和數據源之間用於檢索和保存數據的橋樑。DataAdapter類代表用於填充DataSet以及更新數據源的一組數據庫命令和一個數據庫連接。DataAdapter對象是ADO.NET數據提供程序的組成部分,該數據提供程序還包括連接對象、數據讀取器對象和命令對象。
每個DataAdapter都在DataSet中的單個DataTable對象和SQL語句或存儲過程所產生的單個結果集之間交換數據。可以使用DataAdpater在DataSet和數據源之間交換數據。一個常見例子是應用程序將數據從數據庫讀到DataSet中,然後將DateSet中的更改寫回到數據庫中。然而,DataAdapter可以從任何數據源中檢索和更新數據(不僅僅是數據庫),例如從Microsoft BizTalk服務器應用程序將數據讀取到DataSet。
XxxDataAdapter類提供了方便地管理斷開式功能性的途徑。它用於填充數據集,然後以數據集的任何更改來更新相應的數據源。
DataAdapter是為將查詢結果存儲到DataSet對象和DataTable對象中而設計的。Command對象使用户能夠通過DataReader對象來檢查查詢結果。DataAdapter對象由一系列Command對象和決定DataAdapter如何與DataSet通信的映射屬性的集合組成。
當使用DataAdapter將查詢結果存儲到DataSet時,DataAdapter使用Command與數據庫進行通信。在內部,DataAdapter使用DataReader讀取結果,然後將該結果複製到DataSet的新行中。DataAdapter用來從數據庫中讀取數據的Command對象存儲在DataAdapter對象的SelectCommand屬性中。
DataAdapter對象還有其他一些屬性也包含Command對象:InsertCommand、UpdateCommand和DeleteCommand。DataAdapter使用這些Command對象將保存在DataSet中的更改提交到數據庫。
可以使用數據適配器來填充DataSet,並將數據的更改傳送回數據源。[1] [1] 

DataAdapter操作步驟

使用帶SQL Server .NET數據提供程序的DataSet的步驟如下:
(1)創建SqlConnection對象,連接到SQL Server數據庫。
(2)創建SqlDataAdapter對象。該對象包含能夠指向4個SqlCommand對象的屬性,這些對象指定SQL語句在數據庫中進行SELECT、INSERT、DELETE和UPDATE等數據操作。
(3)創建包含一個或多個表的DataSet對象。
(4)使用SqlDataAdapter對象,通過調用Fill方法來填充DataSet表。SqlDataAdapter隱式執行包含SELECT語句的SqlCommand對象。
(5)修改DataSet中的數據。可以通過編程方式來執行修改,或者將DataSet綁定到用户界面控件(例如DataGrid),然後在控件中更改數據。
(6)在準備將數據更改返回數據庫時,可以使用SqlDataAdapter並調用Update方法。SqlDataAdapter對象隱式使用其SqlCommand對象對數據庫執行INSERT、DELETE和UPDATE語句。

DataAdapter屬性和方法

儘管DataAdapter類包含很多屬性和方法,但很可能每次只使用它們的某個子集。使用DataAdapter可對來自數據源的記錄進行操作。通過使用4個DataAdapter屬性(指定執行某條SQL語句或調用某個存儲過程)中的一個,可以指定所要執行的操作。這些屬性實際上是SqlCommand或OleDbCommand類的實例對象:
SelectCommand引用從數據源中檢索行的Command對象
InsertCommand引用將插入的行從DataSet寫入數據源的Command對象。
UpdateCommand引用將修改的行從DataSet寫入數據源的Command對象。
DeleteCommand引用從數據源中刪除行的Command對象。
使用DataAdapter提供的方法,可以填充DataSet或將DataSet表中的更改傳送到相應的數據存儲區。這些方法包括:
Fill。使用SqlDataAdapter(或OleDbDataAdapter)的這個方法,從數據源增加或刷新行,並將這些行放到DataSet表中。Fill方法調用SelectCommand屬性所指定的SELECT語句
Update。使用DataAdapter對象的這個方法,將DataSet表的更改傳送到相應的數據源中。該方法為DataSet的DataTable中每一指定的行調用相應的INSERT、UPDATE或DELETE命令。

DataAdapter其他信息

DataAdapter 用作 DataSet 和數據源之間的橋接器以便檢索和保存數據。DataAdapter 通過映射Fill(這更改了 DataSet 中的數據以便與數據源中的數據相匹配)和Update(這更改了數據源中的數據以便與 DataSet 中的數據相匹配)來提供這一橋接器。
如果所連接的是 SQL Server 數據庫,則可以通過將SqlDataAdapter與關聯的SqlCommand和SqlConnection對象一起使用,從而提高總體性能。對於支持 OLE DB 的數據源,請使用 DataAdapter 及其關聯的OleDbCommand和 OleDbConnection 對象。對於支持 ODBC 的數據源,請使用 DataAdapter 及其關聯的OdbcCommand和OdbcConnection對象。對於 Oracle 數據庫,請使用 DataAdapter 及其關聯的OracleCommand和OracleConnection對象
當創建 DataAdapter 的實例時,讀/寫屬性將被設置為初始值。有關這些值的列表,請參見 DataAdapter 構造函數
參考資料