SqlDataReader.GetSchemaTable Метод

Определение

Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных SqlDataReader.

public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public:
 override System::Data::DataTable ^ GetSchemaTable();
public System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable GetSchemaTable ();
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Function GetSchemaTable () As DataTable
Public Overrides Function GetSchemaTable () As DataTable

Возвращаемое значение

Объект DataTable, описывающий метаданные столбцов.

Реализации

Исключения

Объект SqlDataReader закрыт.

Комментарии

Метод GetSchemaTable возвращает следующие метаданные о каждом столбце:

Столбец DataReader Описание
AllowDBNull Установите значение , если потребитель может задать для столбца значение NULL или поставщик не может определить, может ли потребитель задать для столбца значение NULL. В противном случае — не задается. Столбец может содержать значения NULL, даже если сам столбец не может иметь значение NULL.
BaseCatalogName Имя каталога в хранилище данных, содержащем столбец. Значение NULL, если не удается определить имя базового каталога. Значение по умолчанию для этого столбца равно NULL.
BaseColumnName Имя столбца в хранилище данных. Это может отличаться от имени столбца, возвращаемого в столбце ColumnName, если использовался псевдоним. Значение NULL, если не удается определить имя базового столбца или столбец набора строк является производным, но не идентичным столбцам в хранилище данных. Значение по умолчанию для этого столбца равно NULL.
BaseSchemaName Имя схемы в хранилище данных, содержащем столбец. Значение NULL, если невозможно определить имя базовой схемы. Значение по умолчанию для этого столбца равно NULL.
BaseServerName Имя экземпляра Microsoft SQL Server, используемого SqlDataReader.
BaseTableName Имя таблицы или представления в хранилище данных, содержащем столбец. Значение NULL, если невозможно определить имя базовой таблицы. Значение по умолчанию для этого столбца равно NULL.
ColumnName Имя столбца; это может быть не уникально. Если определить не удается, то будет возвращено значение NULL. Это имя всегда отражает последнее переименование столбца в текущем представлении или в тексте команды.
ColumnOrdinal Отсчитываемый от нуля порядковый номер столбца. Этот столбец не может содержать значение NULL.
ColumnSize Максимально допустимая длина значения данного столбца. Для столбцов, использующих тип данных фиксированной длины, это размер типа данных. Для nvarchar(MAX)столбцов , varchar(MAX)и varbinary(MAX) , хранящихся в базе данных SQL Server, максимальный размер составляет 2 ГБ. Если эти столбцы хранятся и используются как файлы, ограничение на максимальный размер накладывается файловой системой. Это значение изменяется при использовании Type System Version ключевое слово в строка подключения. Для новых типов они представлены как типы нижнего уровня. Типы данных MAX возвращают обычные 4 кб для nvarchar и 8000 для varchar. Дополнительные сведения см. в справочнике по Transact-SQL.
DataTypeName Возвращает строку, представляющую тип данных указанного столбца.
IsAliased true: имя столбца является псевдонимом.

false: имя столбца не является псевдонимом.
IsAutoIncrement true: столбец присваивает значения новым строкам с фиксированным шагом.

false: столбец не присваивает значения новым строкам с фиксированным шагом. По умолчанию этот столбец имеет значение false.
IsColumnSet true: столбец является разреженным столбцом, который входит в набор столбцов.
IsExpression true: столбец является выражением.

false: столбец не является выражением.
IsHidden true: столбец скрыт.

false: столбец не скрыт.
IsIdentity true: столбец является столбцом идентификаторов.

false: столбец не является столбцом идентификаторов.
IsKey true: столбец является одним из наборов столбцов в наборе строк, которые, взятые вместе, однозначно идентифицируют строку. Набор столбцов с параметром IsKey, имеющим значение true, должен однозначно определять строку в наборе строк. Нет необходимости, чтобы этот набор столбцов являлся минимальным. Этот набор столбцов может быть создан на базе первичного ключа базовой таблицы, уникального ограничения или уникального индекса.

false: столбец не требуется для уникальной идентификации строки.
IsLong true: столбец содержит большой двоичный объект (BLOB), содержащий очень длинные данные. Определение очень большого объема данных зависит от поставщика.

false: столбец не содержит большой двоичный объект (BLOB), содержащий очень длинные данные.
IsReadOnly true: невозможно изменить столбец.

false: столбец можно изменить.
IsRowVersion true: столбец содержит постоянный идентификатор строки, в который невозможно записать данные, и не имеет осмысленного значения, кроме как идентификатор строки.

false: столбец не содержит постоянный идентификатор строки, в который нельзя записать, и не имеет осмысленного значения, за исключением идентификатора строки.
IsUnique true: столбец имеет тип timestamp.

false: столбец не имеет типа timestamp.
NonVersionedProviderType Тип столбца независимо от текущего Type System Version значения, указанного в строка подключения. Возвращаемое значение — из перечисления SqlDbType .
NumericPrecision Если ProviderType является числовым типом данных, это максимальная точность столбца. Точность зависит от определения столбца. Если ProviderType не является числовым типом данных, это значение равно 255.
NumericScale Если ProviderType параметр DBTYPE_DECIMAL или DBTYPE_NUMERIC, количество цифр справа от десятичной запятой. В противном случае это значение равно 255.
ProviderSpecificDataType Возвращает зависящий от поставщика тип данных столбца на Type System Version основе ключевое слово в строка подключения.
ProviderType Признак типа данных столбца. Если тип данных столбца отличается от строки к строке, это должен быть Объект. Этот столбец не может содержать значение NULL.
UdtAssemblyQualifiedName Если столбец является определяемым пользователем типом (UDT), это полное имя сборки определяемого пользователем типа в соответствии AssemblyQualifiedNameс . Если столбец не является определяемой пользователем типом, это значение равно NULL.
XmlSchemaCollectionDatabase Имя базы данных, в которой находится коллекция схем для этого экземпляра XML, если строка содержит сведения о XML-столбце. Это значение равно null (Nothing в Visual Basic), если коллекция определена в текущей базе данных. Он также имеет значение NULL, если нет коллекции схем. В этом случае XmlSchemaCollectionName столбцы и также XmlSchemaCollectionOwningSchema имеют значение NULL.
XmlSchemaCollectionName Имя коллекции схем для данного экземпляра XML, если строка содержит сведения о XML-столбце. Это значение равно null (Nothing в Visual Basic), если нет связанной коллекции схем. Если значение равно NULL, столбцы XmlSchemaCollectionDatabase и XmlSchemaCollectionOwningSchema также имеют значение NULL.
XmlSchemaCollectionOwningSchema Реляционная схема-владение, в которой находится коллекция схем для этого экземпляра XML, если строка содержит сведения о xml-столбце. Это значение равно null (Nothing в Visual Basic), если коллекция определена в текущей базе данных. Он также имеет значение NULL, если нет коллекции схем. В этом случае XmlSchemaCollectionDatabase столбцы и также XmlSchemaCollectionName имеют значение NULL.

Примечание

Чтобы убедиться, что столбцы метаданных возвращают правильные сведения, необходимо вызвать ExecuteReader с параметром behavior , равным KeyInfo. В противном случае некоторые столбцы в таблице схемы могут возвращать данные по умолчанию, null или неверные данные.

Применяется к

См. также раздел