圖片演示AOP.NET DataAdapter對象
大家都喜歡用AOP.NET訪問數據庫,AOP.NET經過長時間的發展,這里我發表一下個人理解,和大家討論討論。還是希望可以給大家帶來技術上的提高。DataAdapter數據適配器用于在數據源和數據集之間交換數據。在許多應用程序中,這意味著從數據庫將數據讀入數據集,然后從數據集將已更改數據寫回數據庫。通常DataAdapter數據適配器是可以配置的,允許指定哪些數據移入或移出數據集。這經常采用的形式是對SQL語句或存儲過程的引用,這些語句或存儲過程被調用時即可實現對數據庫進行讀寫。
每個數據適配器DataAdapter都將在單個數據源表和數據集內的單個DataTable對象之間交換數據。如果數據集包含多個數據表,通常的策略是令多個數據適配器向數據集提供數據,并將其數據寫回各個數據源表。
#T#AOP.NET DataAdapter對象表示一組數據命令和一個數據庫連接,用于填充DataSet對象和更新數據源。作為DataSet對象和數據源之間的橋接器,通過映射Fill()方法向DataSet填充數據,通過Update()方法向數據庫更新DataSet對象中的變化。這些操作實際上是由AOP.NET DataAdapter對象包含的Select、Update、Insert、Delete四種Command命名對象實現的。也可以直接結合Command對象的使用來完成數據的操作。AOP.NET DataAdapter對象的工作原理請參見圖所示:

DataAdapter對象的工作原理圖
在客戶端應用程序需要處理數據源的數據時,客戶端應用程序與數據源之間建立連接。引用數據命令的DataAdapter對象向數據源發送數據命令請求,這個請求是執行DataAdapter對象的Fill()方法來完成“填充”操作時發送并被數據源執行的。數據源的數據就會填充到客戶端的DataSet對象,在DataSet對象內部形成具有跟數據源數據結構一致的數據表DataTable對象,而DataTable對象內部有包含表示數據結構的DataColumn對象集合和表示數據約束的Constraint對象集合,還含有表示數據記錄的DataRow對象的集合。數據以及數據結構填充到DataSet對象后,DataSet數據集相當于一個脫機數據庫,客戶端應用程序操作的數據完全從DataSet數據集中獲取。這是客戶端DataSet數據集與數據源之間可以斷開連接,也就是說它們之間的關系是非***連接關系。只有客戶端完成數據操作需要將數據回傳給數據源時,再次建立連接。由DataAdapter對象再次向數據源發送數據命令請求,這個請求是執行DataAdapter對象的Update()方法來完成“更新”操作時發送并被數據源執行的。執行后,連接再次斷開。.NET提供程序及其DataAdapter類,請參見表所示:
提供程序 |
DataAdapter類 |
SQL數據提供程序 |
SqlDataAdapter |
OLE DB數據提供程序 |
OleDbDataAdapter |
Oracle數據提供程序 |
OracleDataAdapter |
ODBC數據提供程序 |
OdbcDataAdapter |