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

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