Добавление новой таблицы данных в набор данных

ADO.NET позволяет создавать объекты DataTable и добавлять их к существующему DataSet. Можно задать данные ограничения для DataTable, используя свойства PrimaryKey и 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 данных содержит таблицы Table1 и table1, вы будете ссылать table1 по имени dataSet.Tables["Table1"], а таблица1dataSet.Tables["table1"]. Попытка ссылаться на любую из таблиц как dataSet.Tables["TABLE1"] создаст исключение.

Это правило учета регистра не применяется, если только одна таблица или связь имеет какое-то определенное имя. Например, если у DataSet него есть только table1, вы можете ссылаться на него с помощью dataSet.Tables["TABLE1"].

Примечание.

Указанное правило применяется без учета значения свойства CaseSensitive объекта DataSet. Свойство CaseSensitive применяется к данным в DataSet и затрагивает сортировку, поиск, фильтрацию, предписание ограничений и т. д.

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

В версиях ADO.NET, выпущенных до версии 2.0, две таблицы не могли иметь одинаковое имя, даже если находились в разных пространствах имен. Это ограничение было снято в ADO.NET 2.0. Набор данных DataSet может содержать две таблицы, имеющие одинаковое значение свойства TableName, но различные значения свойства Namespace.

См. также