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

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