DataSet

DataSet

内存中的數據庫
DataSet是ADO.NET的中心概念。可以把DataSet當成内存中的數據庫,DataSet是不依賴于數據庫的獨立數據集合。所謂獨立,就是說,即使斷開數據鍊路,或者關閉數據庫,DataSet依然是可用的,DataSet在内部是用XML來描述數據的,由于XML是一種與平台無關、與語言無關的數據描述語言,而且可以描述複雜關系的數據,比如父子關系的數據,所以DataSet實際上可以容納具有複雜關系的數據,而且不再依賴于數據庫鍊路。
    中文名:DataSet 外文名: 别名: 概述:DataSet是ADO.NET的中心概念 特性:獨立性 使用方法:把數據庫中的數據通過DataAdapter對象填充DataSet

概述

是 DataSet 從數據源檢索的數據的内存中緩存,是 ADO.NET 體系結構的主要組件。 DataSet包含一個 DataTable 對象集合,這些對象可以與對象相關聯 DataRelation 。 你還可以 DataSet 使用和對象在中強制執行數據 UniqueConstraint 完整性 ForeignKeyConstraint 。

數據模型

因為DataSet可以看做是内存中的數據庫,也因此可以說DataSet是數據表的集合,它可以包含任意多個數據表(DataTable),而且每一 DataSet中的數據表(DataTable)對應一個數據源中的數據表(Table)或是數據視圖(View)。數據表實質是由行(DataRow)和 列(DataColumn)組成的集合為了保護内存中數據記錄的正确性,避免并發訪問時的讀寫沖突,DataSet對象中的DataTable負責維護每一條記錄,分别保存記錄的初始狀态和當前狀态。從這裡可以看出DataSet是與隻能存放單張數據表的Recordset是截然不同的概念。

DataSet對象結構還是非常複雜的,在DataSet對象的下一層中是DataTableCollection對象、 DataRelationCollection對象和ExtendedProperties對象。上文已經說過,每一個DataSet對象是由若幹個 DataTable對象組成。DataTableCollection就是管理DataSet中的所有DataTable對象。表示DataSet中兩個 DataTable對象之間的父/子關系是DataRelation對象。它使一個DataTable 中的行與另一個DataTable中的行相關聯。這種關聯類似于關系數據庫中數據表之間的主鍵列和外鍵列之間的關聯。

DataRelationCollection對象就是管理DataSet中所有DataTable之間的DataRelation關系的。在 DataSet中DataSet、DataTable和DataColumn都具有ExtendedProperties屬性。 ExtendedProperties其實是一個屬性集(PropertyCollection),用以存放各種自定義數據,如生成數據集的SELECT 語句等。DataRow表示DataType中實際的數據,我們通過DataRow将數據添加到用DataColumn定義好的DataTable。

三大特性

通過上面幾節中的介紹和本節中的分析,我們可以總結出DataSet對象的三大特性:

(1) 獨立性。DataSet獨立于各種數據源。

(2) 離線(斷開)和連接。

(3) DataSet對象是一個可以用XML形式表示的數據視圖,是一種數據關系視圖。

相關詞條

相關搜索

其它詞條