1. 程式人生 > >VB.Net DataSet和DataTable

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   中表或關係的引用。