專家有效說明ADO.NET運行錯誤與指點
下面就對ADO.NET運行錯誤進行介紹說明,導致DataSet對象包含一個數據集??梢詫ataSet對象視為許多DataTable對象(存儲在DataSet對象的Tables集合中)的容器。請有時,開發人員可能希望訪問一個運行在中間層服務器上的組件,以獲取許多表的內容。
這時不必重復調用該服務器以便每次從一個表中獲取數據,而是可以將所有數據都封裝入一個DataSet對象之中,并在一次單獨調用中將其返回。但DataSet對象的功能絕不僅僅是作為多個DataTable對象的容器。
存儲在DataSet對象中的數據未與數據庫連接。對數據所做的任何更改都將只是緩存在每個DataRow之中。要將這些更改傳遞給數據庫時,將整個DataSet回傳給中間層服務器可能并非一種有效方法??梢允褂肎etChanges方法僅從DataSet中選出被修改的行。通過這樣的方式,可以在不同進程或服務器之間傳遞較少數據。#t#
DataSet還公開了Merge方法,該方法可作為GetChanges方法的一個補充。用于向數據庫提交更改的中間層服務器(它使用的是由Merge方法返回的較小DataSet)將會返回一個包含著新獲得數據的DataSet??梢允褂肈ataSet類的Merge方法來將兩個DataSet對象的內容合并入一個DataSet之中。這個例子又一次表明在ADO.NET運行錯誤設計開發ADO.NET時,一直將多層應用程序作為考慮內容之一。過去的微軟數據訪問模型就沒有類似特性。
您可以創建DataSet對象,而且無須與數據庫ADO.NET運行錯誤通信就可以用信息填充DataSet對象的Tables集合。在以前的數據訪問模型中,在本地添加新行之前,通常需要查詢數據庫,然后將它們提交給數據庫。而使用ADO.NET,在準備好提交新數據行之后才需要與數據庫通信。
DataSet類還有一些特性,利用這些特性可以將DataSet類寫入一個文件或一個內存區域,或者從文件或內存區域ADO.NET運行錯誤中讀出該類。您可以只保存DataSet對象的內容,或只保存DataSet對象的結構,也可以兩者都保存。ADO.NET將此數據存儲為XML文檔。
由于ADO.NET與XML密切相關,所以在ADO.NET的ADO.NET運行錯誤DataSet對象和XML文檔之間傳遞數據只是小事一樁。這樣就能夠利用XML的強大功能之一:輕松轉換數據結構的功能。例如,可以使用可擴展樣式語言(Extensible Stylesheet Language,XSL)轉換模板將輸出到XML文檔的數據轉換為HTML。