Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Элемент DataTable содержит коллекцию объектов DataColumn, на которые ссылается свойство Columns таблицы. Эта коллекция столбцов вместе с любыми ограничениями определяет схему или структуру таблицы.
Вы создаёте DataColumn объекты в таблице с помощью DataColumn конструктора или вызовом метода Add для свойства Columns таблицы, который является DataColumnCollection. Метод Add принимает необязательные аргументы ColumnName, DataType и Expression создает новый элемент DataColumn коллекции. Он также принимает существующий DataColumn объект и добавляет его в коллекцию и возвращает ссылку на добавленную DataColumn при запросе. Так как DataTable объекты не относятся к любому источнику данных, типы .NET Framework используются при указании типа данных DataColumn.
В следующем примере в DataTable добавляется четыре столбца.
Dim workTable As DataTable = New DataTable("Customers")
Dim workCol As DataColumn = workTable.Columns.Add( _
"CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = false
workCol.Unique = true
workTable.Columns.Add("CustLName", Type.GetType("System.String"))
workTable.Columns.Add("CustFName", Type.GetType("System.String"))
workTable.Columns.Add("Purchases", Type.GetType("System.Double"))
DataTable workTable = new DataTable("Customers");
DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;
workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));
В примере обратите внимание, что свойства столбца CustID не допускают DBNull значения и ограничивают значения, чтобы они были уникальными. Однако если столбец определяется CustID как столбец первичного ключа таблицы, свойство AllowDBNull будет автоматически задано false, а свойство Unique - true. Дополнительные сведения см. в разделе "Определение первичных ключей".
Осторожность
Если имя столбца не указано для столбца, столбец получает добавочное имя по умолчанию столбцаN, начиная с "Column1", когда он добавляется в DataColumnCollection. Рекомендуется избегать соглашения об именовании столбца "Столбец N" при предоставлении имени столбца, так как указанное имя может конфликтовать с существующим именем столбца по умолчанию в DataColumnCollection. Если указанное имя уже существует, вызывается исключение.
Если вы используете XElement в качестве DataType для DataColumn в DataTable, сериализация XML не будет работать при чтении данных. Например, если вы напишете XmlDocument с использованием метода DataTable.WriteXml, то при сериализации в XML появится дополнительный родительский узел в XElement. Чтобы обойти эту проблему, используйте SqlXml тип вместо XElement.
ReadXml и WriteXml правильно работает с SqlXml.