VB.Net DataSet和DataTable
在我們編寫程式碼的時候從資料庫裡取出資料,填充到dataset裡,再根據表的名字,例項化到 datatable 中。其實使用 dataset 相當於所使用資料庫中資料的副本,儲存在伺服器的記憶體中。
●
注意如下 ado.net 關係:
Connection_____Command____DataAdapter____Dataset
_____Datareader
●
DataSet 是放在記憶體中的,對DataSet中資料的修改並不直接反應到資料庫,要通過 DataAdapter 的 Update 方法更新回資料庫
●
DataSet 相當你用的資料庫
DataTable 相當於你的表。一個 DataSet 可以包含多個 DataTable
DataSet 由表、關係和約束的集合組成。在 ADO.NET 中,DataTable 物件用於表示 DataSet 中的表。DataTable 表示一個記憶體內關係資料的表;
●
以下程式碼示例演示如何構造 DataSet 的例項。
Dim cDS As DataSet = New DataSet( "CustomerOrders ")
以下示例構造一個 DataSet,將一個新的 DataTable 物件新增到該 DataSet 中,然後將三個 DataColumn 物件新增到該表中。最後,該程式碼將一個列設定為主鍵列。
Dim cDS As DataSet = New DataSet( "CustomerOrders ")
Dim ordersTable As DataTable = cDS.Tables.Add( "Orders ")
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}
區分大小寫
按名稱引用 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 "] 來引用它。
DataSet 的 CaseSensitive 屬性不影響此行為。CaseSensitive 屬性會應用於 DataSet 中的資料,它將影響排序、搜尋、篩選、約束強制等。CaseSensitive 屬性不會影響對 DataSet 中表或關係的引用。