SqlDataReader.GetSchemaTable SqlDataReader.GetSchemaTable SqlDataReader.GetSchemaTable SqlDataReader.GetSchemaTable Method

Определение

Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных SqlDataReader.Returns a DataTable that describes the column metadata of the 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, описывающий метаданные столбцов.A DataTable that describes the column metadata.

Реализации

Исключения

Комментарии

Для GetSchemaTable метод возвращает метаданные о каждом столбце в следующем порядке:For the GetSchemaTable method returns metadata about each column in the following order:

Столбец DataReaderDataReader column ОписаниеDescription
AllowDBNullAllowDBNull Задайте, если потребитель может установить для столбца значение null или если поставщик не может определить, может ли потребитель задать столбец со значением null.Set if the consumer can set the column to a null value or if the provider cannot determine whether the consumer can set the column to a null value. В противном случае не задано.Otherwise, not set. Столбец может содержать значения null, даже если он не может быть присвоено значение null.A column may contain null values, even if it cannot be set to a null value.
BaseCatalogNameBaseCatalogName Имя каталога в хранилище данных, содержащей столбец.The name of the catalog in the data store that contains the column. Значение NULL, если невозможно определить имя базового каталога.NULL if the base catalog name cannot be determined. По умолчанию этот столбец имеет значение null.The default of this column is a null value.
BaseColumnNameBaseColumnName Имя столбца в хранилище данных.The name of the column in the data store. Это может быть отличается от имени столбца, возвращаемого в столбце ColumnName, если используется псевдоним.This might be different than the column name returned in the ColumnName column if an alias was used. Значение null, если невозможно определить имя базового столбца или если столбец набора строк является производным, но не идентичен, сохранения столбца данных.A null value if the base column name cannot be determined or if the rowset column is derived, but not identical to, a column in the data store. По умолчанию этот столбец имеет значение null.The default of this column is a null value.
BaseSchemaNameBaseSchemaName Имя схемы в хранилище данных, содержащей столбец.The name of the schema in the data store that contains the column. Значение null, если невозможно определить имя базовой схемы.A null value if the base schema name cannot be determined. По умолчанию этот столбец имеет значение null.The default of this column is a null value.
BaseServerNameBaseServerName Имя экземпляра Microsoft SQL Server, используемому SqlDataReader.The name of the instance of Microsoft SQL Server used by the SqlDataReader.
BaseTableNameBaseTableName Имя таблицы или представления в хранилище данных, содержащей столбец.The name of the table or view in the data store that contains the column. Значение null, если невозможно определить имя базовой таблицы.A null value if the base table name cannot be determined. По умолчанию этот столбец имеет значение null.The default of this column is a null value.
ColumnNameColumnName Имя столбца; оно не может быть уникальным.The name of the column; this might not be unique. Если это не может быть определено, возвращается значение null.If this cannot be determined, a null value is returned. Это имя всегда отражает последнее переименование столбца в текущий текст представления или команды.This name always reflects the most recent renaming of the column in the current view or command text.
ColumnOrdinalColumnOrdinal Отсчитываемый от нуля порядковый номер столбца.The zero-based ordinal of the column. Этот столбец не может содержать значение null.This column cannot contain a null value.
ColumnSizeColumnSize Максимально возможная длина значения в столбце.The maximum possible length of a value in the column. Для столбцов с типом данных фиксированной длины это размер типа данных.For columns that use a fixed-length data type, this is the size of the data type. Для nvarchar(MAX), varchar(MAX), и varbinary(MAX) столбцы, которые хранятся в базе данных SQL Server, максимальный размер составляет 2 ГБ.For nvarchar(MAX), varchar(MAX), and varbinary(MAX) columns stored in a SQL Server database, the maximum size is 2GB. Если эти столбцы хранятся и доступны в виде файлов, ограничение на максимальный размер определяется в файловой системе.If these columns are stored and accessed as files, the limit on maximum size is imposed by the file system. Это значение изменяется при использовании Type System Version ключевое слово в строке подключения.This value changes when using the Type System Version keyword in the connection string. Для новых типов они представляются как типы нижнего уровня.For new types they are represented as downlevel types. Типы данных MAX возвращает обычный 4k для nvarchar и 8000 для varchar.The MAX data types return the normal 4k for nvarchar and 8000 for varchar. Дополнительные сведения см. в разделе Справочник по Transact-SQL.For more information, see the Transact-SQL reference.
Имя_типа_данныхDataTypeName Возвращает строку, представляющую тип данных указанного столбца.Returns a string representing the data type of the specified column.
IsAliasedIsAliased true: Имя столбца является псевдонимом.true: The column name is an alias.

false: Имя столбца не является псевдонимом.false: The column name is not an alias.
IsAutoIncrementIsAutoIncrement true: Столбец присваивает значения новым строкам с фиксированным приращением.true: The column assigns values to new rows in fixed increments.

false: Столбец не присваивает значения новым строкам с фиксированным приращением.false: The column does not assign values to new rows in fixed increments. По умолчанию этот столбец имеет false.The default of this column is false.
IsColumnSetIsColumnSet true: Столбец является разреженным столбцом, который входит в набор столбцов.true: The column is a sparse column that is a member of a column set.
IsExpressionIsExpression true: Столбец является выражением.true: The column is an expression.

false: Столбец не является выражением.false: The column is not an expression.
IsHiddenIsHidden true: Столбец будет скрыт.true: The column is hidden.

false: Столбец не является скрытым.false: The column is not hidden.
IsIdentityIsIdentity true: Столбец является столбцом идентификаторов.true: The column is an identity column.

false: Столбец не является столбцом идентификаторов.false: The column is not an identity column.
IsKeyIsKey true: Столбец является одним из набора столбцов в наборе строк, взятые вместе, однозначно идентифицировать строку.true: The column is one of a set of columns in the rowset that, taken together, uniquely identify the row. Набор столбцов с IsKey присвоено true должен однозначно определять строку в наборе строк.The set of columns with IsKey set to true must uniquely identify a row in the rowset. Нет необходимости что этот набор столбцов являлся минимальным столбцов.There is no requirement that this set of columns is a minimal set of columns. Этот набор столбцов может быть создан из первичного ключа базовой таблицы, уникального ограничения или уникального индекса.This set of columns may be generated from a base table primary key, a unique constraint or a unique index.

false: Столбец не требуется для уникальной идентификации строки.false: The column is not required to uniquely identify the row.
IsLongIsLong true: Столбец содержит большой двоичный объект (BLOB), содержащий данные очень большой длины.true: The column contains a Binary Long Object (BLOB) that contains very long data. Определение очень большого объема данных зависит от поставщика.The definition of very long data is provider-specific.

false: Столбец содержит большой двоичный объект (BLOB), содержащий данные очень большой длины.false: The column does not contain a Binary Long Object (BLOB) that contains very long data.
IsReadOnlyIsReadOnly true: Столбец не может быть изменен.true: The column cannot be modified.

false: Можно изменить столбец.false: The column can be modified.
IsRowVersionIsRowVersion true: Столбец содержит постоянный идентификатор строк, не может быть записан и не имеет осмысленные значения за исключением идентификации строки.true: The column contains a persistent row identifier that cannot be written to, and has no meaningful value except to identity the row.

false: Столбец содержит постоянный идентификатор строк, не может быть записан и не имеет осмысленные значения за исключением идентификатора столбца.false: The column does not contain a persistent row identifier that cannot be written to, and has no meaningful value except to identity the row.
IsUniqueIsUnique true: Столбец имеет тип timestamp.true: Column is of type timestamp.

false: Столбец не относится к типу timestamp.false: Column is not of type timestamp.
NonVersionedProviderTypeNonVersionedProviderType Тип столбца независимо от текущего Type System Version указан в строке подключения.The type of the column irrespective of the current Type System Version specified in the connection string. Возвращаемое значение — от SqlDbType перечисления.The returned value is from the SqlDbType enumeration.
NumericPrecisionNumericPrecision Если ProviderType имеет числовой тип данных, это максимальная точность столбца.If ProviderType is a numeric data type, this is the maximum precision of the column. Точность зависит от определения столбца.The precision depends on the definition of the column. Если ProviderType не числовой тип данных, это составляет 255.If ProviderType is not a numeric data type, this is 255.
NumericScaleNumericScale Если ProviderType DBTYPE_DECIMAL или DBTYPE_NUMERIC, количество цифр справа от десятичной запятой.If ProviderType is DBTYPE_DECIMAL or DBTYPE_NUMERIC, the number of digits to the right of the decimal point. В противном случае это 255.Otherwise, this is 255.
ProviderSpecificDataTypeProviderSpecificDataType Возвращает тип поставщика данных на основе столбца Type System Version ключевое слово в строке подключения.Returns the provider-specific data type of the column based on the Type System Version keyword in the connection string.
ProviderTypeProviderType Указывает, какой тип данных столбца.The indicator of the column's data type. Если тип данных столбца меняется от строки к строке, это должен быть объектом.If the data type of the column varies from row to row, this must be Object. Этот столбец не может содержать значение null.This column cannot contain a null value.
UdtAssemblyQualifiedNameUdtAssemblyQualifiedName Если столбец определяемого пользователем типа (UDT), это полное имя сборки определяемого пользователем ТИПА, как указано в AssemblyQualifiedName.If the column is a user-defined type (UDT), this is the qualified name of the UDT's assembly as per AssemblyQualifiedName. Если столбец не является определяемый пользователем тип, это имеет значение null.If the column is not a UDT, this is null.
XmlSchemaCollectionDatabaseXmlSchemaCollectionDatabase Имя базы данных, в которой находится коллекция схем для данного экземпляра XML, если строка содержит сведения о столбце XML.The name of the database where the schema collection for this XML instance is located, if the row contains information about an XML column. Это значение равно null (Nothing в Visual Basic), если коллекция определена в текущей базе данных.This value is null (Nothing in Visual Basic) if the collection is defined within the current database. Он также имеет значение null, если нет коллекции схем, в этом случае XmlSchemaCollectionName и XmlSchemaCollectionOwningSchema столбцов также имеют значение null.It is also null if there is no schema collection, in which case the XmlSchemaCollectionName and XmlSchemaCollectionOwningSchema columns are also null.
XmlSchemaCollectionNameXmlSchemaCollectionName Имя коллекции схем для данного экземпляра XML, если строка содержит сведения о столбце XML.The name of the schema collection for this XML instance, if the row contains information about an XML column. Это значение равно null (Nothing в Visual Basic), если нет связанной схемы коллекции.This value is null (Nothing in Visual Basic) if there is no associated schema collection. Если значение равно null, XmlSchemaCollectionDatabase и XmlSchemaCollectionOwningSchema столбцов также имеют значение null.If the value is null, the XmlSchemaCollectionDatabase and XmlSchemaCollectionOwningSchema columns are also null.
Xmlschemacollectionowningschema неXmlSchemaCollectionOwningSchema Реляционная схема-владелец, в которой находится коллекция схем для данного экземпляра XML, если строка содержит сведения о столбце XML.The owning relational schema where the schema collection for this XML instance is located, if the row contains information about an XML column. Это значение равно null (Nothing в Visual Basic), если коллекция определена в текущей базе данных.This value is null (Nothing in Visual Basic) if the collection is defined within the current database. Он также имеет значение null, если нет коллекции схем, в этом случае XmlSchemaCollectionDatabase и XmlSchemaCollectionName столбцов также имеют значение null.It is also null if there is no schema collection, in which case the XmlSchemaCollectionDatabase and XmlSchemaCollectionName columns are also null.

Примечание

Чтобы убедиться в том, что столбцы метаданных возвращают правильные данные, необходимо вызвать ExecuteReader с behavior параметру присвоить KeyInfo.To make sure that metadata columns return the correct information, you must call ExecuteReader with the behavior parameter set to KeyInfo. В противном случае некоторые столбцы в таблице схемы могут возвращать значение по умолчанию, null или неправильные данные.Otherwise, some of the columns in the schema table may return default, null, or incorrect data.

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

Дополнительно