将数据表添加到数据集中

ADO.NET 使您能够创建 DataTable 对象并将其添加到现有 DataSet 中。 可以使用 DataTablePrimaryKey 属性为 Unique 设置约束信息。

示例

以下示例构造一个 DataSet,将一个新的 DataTable 对象添加到该 DataSet 中,然后将三个 DataColumn 对象添加到该表中。 最后,该代码将一个列设置为主键列。

DataSet customerOrders = new("CustomerOrders");

DataTable ordersTable = customerOrders.Tables.Add("Orders");

DataColumn pkOrderID =
    ordersTable.Columns.Add("OrderID", typeof(int));
ordersTable.Columns.Add("OrderQuantity", typeof(int));
ordersTable.Columns.Add("CompanyName", typeof(string));

ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
Dim customerOrders As New 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}

区分大小写

DataSet 中可以存在两个或两个以上的同名但是大小写不同的表或关系。 在这种情况下,通过名称对表和关系的引用将区分大小写。 例如,如果 DataSet dataSet 包含表 Table1 和 table1,则将通过名称将 Table1 作为 dataSet.Tables["Table1"] 来引用,而将 table1 作为 dataSet.Tables["table1"] 来引用。 如果试图将其中任一个表作为 dataSet.Tables["TABLE1"] 来引用,则会生成异常。

如果只有一个具有特定名称的表或关系,则区分大小写行为不适用。 例如,如果 DataSet 只包含 Table1,则可以使用 dataSet.Tables["TABLE1"] 来引用。

备注

CaseSensitiveDataSet 属性不影响此行为。 CaseSensitive 属性应用于 DataSet 中的数据,并会影响排序、搜索、筛选、执行约束,等等。

命名空间支持

在 2.0 之前的 ADO.NET 版本中,两个表即使处于不同的命名空间中也不能同名。 ADO.NET 2.0 中取消了此限制。 DataSet 可以包含具有相同 TableName 属性值但是具有不同 Namespace 属性值的两个表。

请参阅