.Net 中DataSet和DataTable的 區別與聯絡
阿新 • • 發佈:2019-02-12
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
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"] 來引用它。