示例演示ADO.NET DataSet向數(shù)據(jù)集添加數(shù)據(jù)表
ADO.NET經(jīng)過長時間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個人理解,和大家討論討論。ADO.NET使您能夠創(chuàng)建 DataTable 對象并將其添加到現(xiàn)有 ADO.NET DataSet 中??梢允褂?PrimaryKey 和 Unique 屬性為 DataTable 設(shè)置約束信息。
以下示例構(gòu)造一個 ADO.NET DataSet,將一個新的 DataTable 對象添加到該 ADO.NET DataSet 中,然后將三個 DataColumn 對象添加到該表中。***,該代碼將一個列設(shè)置為主鍵列。
Visual Basic
- Dim customerOrders As ADO.NET DataSet = New ADO.NET DataSet("CustomerOrders")
- Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")
- Dim pkOrderID 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() {pkOrderID}
C#
- ADO.NET DataSet customerOrders = new ADO.NET DataSet("CustomerOrders");
- DataTable ordersTable = customerOrders.Tables.Add("Orders");
- DataColumn pkOrderID =
- ordersTable.Columns.Add("OrderID", typeof(Int32));
- ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
- ordersTable.Columns.Add("CompanyName", typeof(string));
- ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
#T#區(qū)分大小寫
ADO.NET DataSet 中可以存在兩個或兩個以上的同名但是大小寫不同的表或關(guān)系。在這種情況下,通過名稱對表和關(guān)系的引用將區(qū)分大小寫。例如,如果 ADO.NET DataSet ADO.NET DataSet 包含表 Table1 和 table1,則將通過名稱將 Table1 作為 ADO.NET DataSet.Tables["Table1"] 來引用,而將 table1 作為 ADO.NET DataSet.Tables["table1"] 來引用。如果試圖將其中任一個表作為 ADO.NET DataSet.Tables["TABLE1"] 來引用,則會生成異常。
如果只有一個具有特定名稱的表或關(guān)系,則區(qū)分大小寫行為不適用。例如,如果 ADO.NET DataSet 只包含 Table1,則可以使用 ADO.NET DataSet.Tables["TABLE1"] 來引用。ADO.NET DataSet 的 CaseSensitive 屬性不影響此行為。CaseSensitive 屬性應(yīng)用于 ADO.NET DataSet 中的數(shù)據(jù),并會影響排序、搜索、篩選、執(zhí)行約束,等等。
命名空間支持
在 2.0 之前的 ADO.NET 版本中,兩個表即使處于不同的命名空間中也不能同名。ADO.NET 2.0 中取消了此限制。ADO.NET DataSet 可以包含具有相同 TableName 屬性值但是具有不同 Namespace 屬性值的兩個表。