古詩詞大全網 - 古詩大全 - C#DataSet與DataTable的區別和用法

C#DataSet與DataTable的區別和用法

DataSet是數據集,DataTable是數據表,DataSet存儲多個DataTable。DataSet和DataTable像是專門存儲數據的壹個容器,在妳查詢數據庫得到壹些結果時可以存在裏面。

DataSet功能強大有瀏覽、排序、搜索、過濾、處理分級數據、緩存更改等功能,還可以與XML數據互換。DataSet中可包括多個DataTable,可將多個查詢結構存到壹個DataSet中,方便操作 ADO.NET開發人員為方便數據處理開發出來的,是數據的集合,為解決DataReader的缺陷設計的,DataReader數據處理速度快,但它是只讀的,壹旦移到下壹行就不能查看上壹行的數據,DataSet則可以自由移動指針。DataSet的數據是與數據庫斷開的。DataSet還可用於多層應用程序中,如果應用程序運行在中間層的業務對象中來訪問數據庫,則業務對象需將脫機數據結構傳遞給客戶應用程序。

DataSet的三種創建方式:

DataTable() 不帶參數初始化DataTable 類的新實例。

DataTable(string tableName) 用指定的表名初始化DataTable 類的新實例。

DataSet的常用屬性介紹 :

CaseSensitive 指示表中的字符串比較是否區分大小寫。如果是區分大小寫則為false,默認值為false。

ChildRelations 獲取此DataTable 的子關系的集合。

Columns 獲取屬於該表的列的集合。

Constraints 獲取由該表維護的約束的集合。

DataSet 獲取此表所屬的DataSet。DataSet相關信息,可見我以前的壹篇文章《數據訪問(2)-DataSet》

DefaultView 獲取可能包括篩選視圖或遊標位置的表的自定義視圖。

HasErrors 獲取壹個值,該值指示該表所屬的DataSet 的任何表的任何行中是否有錯誤。

MinimumCapacity 獲取或設置該表最初的起始大小。該表中行的最初起始大小。默認值為 50。

Rows 獲取屬於該表的行的集合。

TableName 獲取或設置DataTable 的名稱。

DataSet常用方法 :

Clear() 清除所有數據的DataTable。

Clone() 克隆DataTable 的結構,包括所有DataTable 架構和約束。

EndInit() 結束在窗體上使用或由另壹個組件使用的DataTable 的初始化。初始化發生在運行時。

ImportRow(DataRow row) 將DataRow 復制到DataTable 中,保留任何屬性設置以及初始值和當前值。

Merge(DataTable table) 將指定的DataTable 與當前的DataTable 合並。

NewRow() 創建與該表具有相同架構的新DataRow。

AcceptChanges() 提交自上次調用AcceptChanges() 以來對該表進行的所有更改。

BeginInit() 開始初始化在窗體上使用或由另壹個組件使用的DataTable。初始化發生在運行時。

遍歷DataSet的方法

foreach(DataTable dt in dataSet.Tables)

foreach(DataRow dr in dt.Rows)

foreach(DataColumn dc in dr.Table.Columns)

Console.WriteLine(dr[dc]);