Добавление новой таблицы данных в набор данныхAdding a DataTable to a DataSet

ADO.NET позволяет создавать объекты DataTable и добавлять их к существующему DataSet.ADO.NET enables you to create DataTable objects and add them to an existing DataSet. Можно задать данные ограничения для DataTable, используя свойства PrimaryKey и Unique.You can set constraint information for a DataTable by using the PrimaryKey and Unique properties.

ПримерExample

Следующий пример показывает, как создать объект DataSet, добавить новый объект DataTable к DataSet, а затем добавить к таблице три объекта DataColumn.The following example constructs a DataSet, adds a new DataTable object to the DataSet, and then adds three DataColumn objects to the table. В конце код задает один столбец в качестве столбца первичного ключа.Finally, the code sets one column as the primary key column.

DataSet customerOrders = new 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 };
Dim customerOrders As DataSet = 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}

Учет регистраCase Sensitivity

В DataSet могут существовать две или несколько таблиц или связей, имеющие одинаковые имена, которые, тем не менее, состоят из символов с разными регистрами.Two or more tables or relations with the same name, but different casing, can exist in a DataSet. В таких случаях ссылки по имени на таблицы и связи задаются с учетом регистра.In such cases, references by name to tables and relations are case sensitive. DataSet Например, если набор данных содержит таблицы Table1 и Table1, вы бы ссылались на таблицу Table1 по имени как DataSet. Tables ["table1"] и Table1 в качестве набора данных. Tables ["table1"] .For example, if the DataSet dataSet contains tables Table1 and table1, you would reference Table1 by name as dataSet.Tables["Table1"], and table1 as dataSet.Tables["table1"]. Попытка ссылки на любую из таблиц в качестве набора данных. таблицы ["table1"] создают исключение.Attempting to reference either of the tables as dataSet.Tables["TABLE1"] would generate an exception.

Это правило учета регистра не применяется, если только одна таблица или связь имеет какое-то определенное имя.The case-sensitivity behavior does not apply if only one table or relation has a particular name. Например, если DataSet имеет только Таблица1, можно ссылаться на него с помощью DataSet. Tables ["table1"] .For example, if the DataSet has only Table1, you can reference it using dataSet.Tables["TABLE1"].

Примечание

Указанное правило применяется без учета значения свойства CaseSensitive объекта DataSet.The CaseSensitive property of the DataSet does not affect this behavior. Свойство CaseSensitive применяется к данным в DataSet и затрагивает сортировку, поиск, фильтрацию, предписание ограничений и т. д.The CaseSensitive property applies to the data in the DataSet and affects sorting, searching, filtering, enforcing constraints, and so on.

Поддержка пространства именNamespace Support

В версиях ADO.NET, выпущенных до версии 2.0, две таблицы не могли иметь одинаковое имя, даже если находились в разных пространствах имен.In versions of ADO.NET earlier than 2.0, two tables could not have the same name, even if they were in different namespaces. Это ограничение было снято в ADO.NET 2.0.This limitation was removed in ADO.NET 2.0. Набор данных DataSet может содержать две таблицы, имеющие одинаковое значение свойства TableName, но различные значения свойства Namespace.A DataSet can contain two tables that have the same TableName property value but different Namespace property values.

См. такжеSee also