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]);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM