SqlDataReader.GetSchemaTable Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных SqlDataReader.
public:
override System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.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 или неверные данные.