1. 程式人生 > >.Net 中DataSet和DataTable的 區別與聯絡

.Net 中DataSet和DataTable的 區別與聯絡

1、簡要說明二者關係

       在我們編寫程式碼的時候從資料庫裡取出資料,填充到dataset裡,再根據表的名字,例項化到 datatable 中。其實使用 dataset 相當於所使用資料庫中資料的副本,儲存在伺服器的記憶體中。
       ●注意如下 Ado.NET 關係: 
        Connection_____Command____DataAdapter____Dataset  _____Datareader

       ● DataSet 是放在記憶體中的,對DataSet中資料的修改並不直接反應到資料庫,要通過 DataAdapter 的 Update 方法更新回資料庫

       ● DataSet相當你用的資料庫; DataTable相當於你的表。一個 DataSet 可以包含多個 DataTable

    DataSet 由表、關係和約束的集合組成。在 ADO.net 中,DataTable物件用於表示 DataSet 中的表。DataTable 表示一個記憶體內關係資料的表;


Dim Ds As DataSet = New DataSet( "enUser ");


2.以下程式碼示例演示如何構造DataSet ,DataTable 的例項關係。


以下示例構造一個 DataSet,將一個新的   DataTable  物件新增到該   DataSet  
中,然後將三個   DataColumn  物件新增到該表中。最後,該程式碼將一個列設定為主鍵列
Dim Ds As DataSet = New DataSet( "enUser "); 
Dim ordersTable As DataTable = Ds.Tables.Add( "enUser ");  
Dim pkCol As DataColumn = ordersTable.Columns.Add( "OrderID ",   Type.GetType( "System.Int32 "));  
ordersTable.Columns.Add("OrderQuantity ", Type.GetType( "System.Int32 "));   
ordersTable.Columns.Add("CompanyName ", Type.GetType( "System.String "));  
ordersTable.PrimaryKey = New DataColumn(){pkCol};

3. DataSet中Table1、table1的大小寫關係

      按名稱引用DataSet中的表和關係是區分大小寫的。一個DataSet 中可以存在兩個或更多個名稱相同但大小寫不同的表或關係。例如,可以有   Table1   和   table1。在這種情況下,對其中一個表的按名稱引用必須精確匹配該表名稱的大小寫,否則會引發異常。例如,如果   DataSet   myDs 包含表  Table1   和   table1,則會按名稱將   Table1   當作   myDS.Tables[ "Table1"]   來引用,而將   table1   當作   myDS.Tables   ["table1 "]   來引用。如果試圖將其中任一個表當作   myDS.Tables   ["TABLE1 "]   來引用,則會生成異常。

如果只存在一個具有特定名稱的表或關係,則區分大小寫規則不適用。也就是說,如果 DataSet 中沒有其他任何表或關係物件匹配該特定表或關係物件的名稱,那麼即使大小寫不同,仍可以按採用任何大小寫的名稱來引用該物件,而不會引發異常。例如,如果   DataSet   只包含   Table1,則可以使用   myDS.Tables[ "TABLE1"]   來引用它。