剖析ADO.NET DataSet數(shù)據(jù)填充
ADO.NET還是比較常用的,于是我研究了一下如何填充數(shù)據(jù)集,我們已經(jīng)知道,可以通過DataAdapter對象填充數(shù)據(jù)集對象Dataset,其基本工作原理過程前面章節(jié)多次提到,在這里拿出來和大家分享一下,希望對大家有用。請參見圖所示:

使用DataAdapter對象填充數(shù)據(jù)集操作圖
#T#數(shù)據(jù)源的數(shù)據(jù)就會填充到客戶端的DataSet對象,在DataSet對象內(nèi)部形成具有跟數(shù)據(jù)源數(shù)據(jù)結構一致的數(shù)據(jù)表DataTable對象,而DataTable對象內(nèi)部有包含表示數(shù)據(jù)結構的DataColumn對象集合和表示數(shù)據(jù)約束的Constraint對象集合,還含有表示數(shù)據(jù)記錄的DataRow對象的集合。數(shù)據(jù)以及數(shù)據(jù)結構填充到DataSet對象后,DataSet數(shù)據(jù)集相當于一個脫機數(shù)據(jù)庫,客戶端應用程序操作的數(shù)據(jù)完全從DataSet數(shù)據(jù)集中獲取。這是客戶端DataSet數(shù)據(jù)集與數(shù)據(jù)源之間可以斷開連接,也就是說它們之間的關系是非***連接關系。只有客戶端完成數(shù)據(jù)操作需要將數(shù)據(jù)回傳給數(shù)據(jù)源時,再次建立連接。由DataAdapter對象再次向數(shù)據(jù)源發(fā)送數(shù)據(jù)命令請求,這個請求是執(zhí)行DataAdapter對象的Update()方法來完成“更新”操作時發(fā)送并被數(shù)據(jù)源執(zhí)行的。執(zhí)行后,連接再次斷開。使用DataAdapter對象填充數(shù)據(jù)集分兩步:
***步:使用Connection連接數(shù)據(jù)源;
第二步:使用Fill()方法填充DataSet中的表。
填充數(shù)據(jù)集語法參見圖所示:

使用DataAdapter對象填充數(shù)據(jù)集語法圖
如何保存ADO.NET DataSet中的數(shù)據(jù)
把數(shù)據(jù)集中修改過的數(shù)據(jù)再提交給數(shù)據(jù)源,這個工作原理過程前面章節(jié)多次提到,這里不再過多敘述,請參見圖所示:

把數(shù)據(jù)集中修改過的數(shù)據(jù)提交到數(shù)據(jù)源操作圖
保存ADO.NET DataSet中數(shù)據(jù)變化的數(shù)據(jù)語法參見圖所示:

使用DataAdapter對象保存ADO.NET DataSet中的數(shù)據(jù)語法圖
這里只是應用最簡單的Update()一個表,通過SqlCommandBuilder對象來自動生成更新需要的相關命令,不用手動一個一個的寫,簡化操作。