結果集和資料集的比較 (裝置)
更新:2007 年 11 月
Visual Studio資料來源組態精靈可以在以 DataSet 或 System.Data.SqlServerCe.SqlCeResultSet 為基礎的裝置專案中,產生資料原始程式碼。產生的程式碼代表裝置專案中的資料來源,可以繫結至使用者介面控制項,並與 SQL Server Compact 3.5 資料庫交換資料。不過,以 SqlCeResultSet 為基礎的程式碼,要比以 DataSet-為基礎的程式碼,具有更快的執行速度、使用較少記憶體,而且比較簡便。這是因為 SqlCeResultSet 使用指標直接處理資料庫,DataSet 則是在裝置應用程式中儲存來自資料庫的資料複本。本主題說明以 SqlCeResultSet 和 DataSet-為基礎的資料來源。
![]() |
---|
根據預設,當您使用 [資料來源精靈] 建立新資料來源時,Visual Studio 便會產生以 DataSet 為基礎的程式碼。若要產生任何這些類別的程式碼,請參閱 HOW TO:產生 SqlCeResultSet 程式碼 (裝置)。 |
下列圖表說明 SqlCeResultSets 和 DataSets 之間的架構差異。
結果集
當 [資料來源組態精靈] 產生以 SqlCeResultSet 為基礎的資料來源時,便會建立繼承自 SqlCeResultSet 的類別。不同於以 DataSet 為基礎的資料來源,以 SqlCeResultSet 為基礎的資料來源不會儲存資料。SqlCeResultSet 會維持資料庫的指標,並在不使用 TableAdapter 的情況下,讀取和更新資料庫中的資料。由於 SqlCeResultSet 是 SQL Server Compact 3.5 (舊版中的 SQL Server Mobile) 的 .NET Compact Framework 資料提供者,因此可以直接存取資料庫。如需詳細資訊,請參閱產生具型別的結果集。
整體而言,以 SqlCeResultSet 為基礎的資料來源,要比以 DataSet 為基礎的資料來源,需要較少記憶體、具有較高效能,不過功能卻比較少。
資料集
當 [資料來源組態精靈] 產生以 DataSet 為基礎的資料來源時,便會建立類別來代表資料,並以 TableAdapter 類別在應用程式和資料庫之間交換資料。代表資料的類別是繼承自 DataSet、Microsoft.Office.Interop.Excel.DataTable 和 DataRow,而且這些類別會儲存來自資料庫的資料。[資料來源精靈] 會產生下列項目,以產生資料庫關聯式結構與條件約束 (Constraint) 的鏡像:
衍生自 DataSet 的類別,包含了在 [加入資料來源精靈] 中所選取之每個資料表的 Datatable。如需詳細資訊,請參閱具型別的 DataSet (ADO.NET)。
從 DataTable 衍生的每個類別,也包含了一組資料庫欄位鏡像的 DataColumn 物件。
為每個資料表從 DataRow 衍生的類別。
來自資料庫的關聯式條件約束,例如不可為 null、唯一、主索引鍵和外部索引鍵。
在資料庫和裝置應用程式之資料物件之間交換資料的 TableAdapter 類別。包含可從資料庫讀取資料,以及可將變更的資料寫回資料庫之方法的 TableAdapter 類別。如需詳細資訊,請參閱 TableAdapter 概觀。
本主題中之前所說明的類別都與 ADO.NET 架構相容。因此,其資料存取模型也類似於在桌面上使用 .NET Framework 的 ADO.NET 資料。如需詳細資訊,請參閱存取資料 (Visual Studio) 和 .NET Compact Framework 中的資料存取和 XML 支援。
整體而言,以 DataSet 為基礎的資料來源,要比以 SqlCeResultSet 為基礎的資料來源,具有更多的功能,不過卻需要更多的記憶體和處理器資源。
請參閱
工作
HOW TO:產生 SqlCeResultSet 程式碼 (裝置)