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。
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(datatable dt in dataset.tables)
foreach(datarow dr in dt.rows)
foreach(datacolumn dc in dr.table.columns)
console.writeline(dr[dc]);
C 中DataSet的使用
dataset類是ado.net中最核心的成員之一,它是支援ado.net斷開式 分布式資料方案的核心物件,也是各種開發基於.net平台程式語言開發資料庫應用程式最常接觸的類。dateset物件是建立在記憶體中的集合物件,他可以包含任意數量的資料表以及所有表的約束 索引和關係,它相當於在記憶體中的乙...
C 中DataSet和DataTable區別
你可以把datatable和dataset看做是資料容器,比如你查詢資料庫後得到一些結果,可以放到這種容器裡,那你可能要問 我不用這種容器,自己讀到變數或陣列裡也一樣可以存起來啊,為什麼用容器?原因是,這種容器的功能比較強大,除了可以存資料,還可以有更大用途。舉例 在乙個c s結構的桌面資料庫系統裡...
C 中DataTable和DataSet的使用
datatable是乙個臨時儲存資料的網格虛擬表,表示記憶體中資料的乙個表。dataset就是datatable的集合。建立datatable datatable dt newdatatable 向臨時表命名 dt.table 建立列 dt.columns.add id 新增列 dt.columns...