OleDbDataReader.GetSchemaTable Método

Definición

Devuelve un objeto DataTable que describe los metadatos de columna del OleDbDataReader.Returns a DataTable that describes the column metadata of the OleDbDataReader.

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

Devoluciones

DataTable

DataTable que describe los metadatos de columna.A DataTable that describes the column metadata.

Implementaciones

Excepciones

La clase OleDbDataReader está cerrada.The OleDbDataReader is closed.

Comentarios

El GetSchemaTable método se asigna al método OLE DB IColumnsRowset:: GetColumnsRowset y devuelve los metadatos de cada columna en el orden siguiente:The GetSchemaTable method maps to the OLE DB IColumnsRowset::GetColumnsRowset method, and returns metadata about each column in the following order:

DataReader (columna)DataReader column OLE DB ID. de columnaOLE DB column ID DescripciónDescription
ColumnNameColumnName DBCOLUMN_NAMEDBCOLUMN_NAME Nombre de la columna; Esto podría no ser único.The name of the column; this might not be unique. Si no se puede determinar, se devuelve un valor null.If this cannot be determined, a null value is returned. Este nombre refleja siempre el cambio de nombre más reciente de la columna en el texto de la vista o el comando actual.This name always reflects the most recent renaming of the column in the current view or command text.
ColumnOrdinalColumnOrdinal DBCOLUMN_NUMBERDBCOLUMN_NUMBER Ordinal basado en cero de la columna.The zero-based ordinal of the column. Esta columna no puede contener un valor.This column cannot contain a null value.
ColumnSizeColumnSize DBCOLUMN_COLUMNSIZEDBCOLUMN_COLUMNSIZE Longitud máxima permitida para un valor de la columna.The maximum possible length of a value in the column. En el caso de las columnas que usan un tipo de datos de longitud fija, es el tamaño del tipo de datos.For columns that use a fixed-length data type, this is the size of the data type.
NumericPrecisionNumericPrecision DBCOLUMN_PRECISIONDBCOLUMN_PRECISION Si DbType es un tipo de datos numéricos, se trata de la precisión máxima de la columna.If DbType is a numeric data type, this is the maximum precision of the column. La precisión de las columnas con un tipo de datos DBTYPE_DECIMAL o DBTYPE_NUMERIC depende de la definición de la columna.The precision of columns with a data type of DBTYPE_DECIMAL or DBTYPE_NUMERIC depends on the definition of the column. Si DbType no es un tipo de datos numérico, se trata de un valor null.If DbType is not a numeric data type, this is a null value.
NumericScaleNumericScale DBCOLUMN_SCALEDBCOLUMN_SCALE Si DbType es DBTYPE_DECIMAL o DBTYPE_NUMERIC, es el número de dígitos situados a la derecha del separador decimal.If DbType is DBTYPE_DECIMAL or DBTYPE_NUMERIC, this is the number of digits to the right of the decimal point. De lo contrario, se trata de un valor null.Otherwise, this is a null value.
DataTypeDataType NingunoNone Se asigna al tipo de .NET Framework de la columna.Maps to the .NET Framework type of the column.
ProviderTypeProviderType DBCOLUMN_TYPEDBCOLUMN_TYPE Indicador del tipo de datos de la columna.The indicator of the column's data type. Si el tipo de datos de la columna varía de una fila a una fila, se debe DBTYPE_VARIANT.If the data type of the column varies from row to row, this must be DBTYPE_VARIANT. Esta columna no puede contener un valor.This column cannot contain a null value.
IsLongIsLong DBCOLUMNFLAGS_ISLONGDBCOLUMNFLAGS_ISLONG El proveedor establece DBCOLUMNFLAGS_ISLONG si la columna contiene un objeto binario largo (BLOB) que contiene datos muy largos.The provider sets DBCOLUMNFLAGS_ISLONG if the column contains a Binary Long Object (BLOB) that contains very long data. La definición de la cantidad de datos es específica del proveedor.The definition of very long data is provider-specific. La configuración de esta marca corresponde al valor de la columna IS_LONG del conjunto de filas PROVIDER_TYPES para el tipo de datos.The setting of this flag corresponds to the value of the IS_LONG column in the PROVIDER_TYPES rowset for the data type.
AllowDBNullAllowDBNull DBCOLUMNFLAGS_ISNULLABLEDBCOLUMNFLAGS_ISNULLABLE El proveedor establece DBCOLUMNFLAGS_ISNULLABLE si el consumidor puede establecer la columna en un valor null o si el proveedor no puede determinar si el consumidor puede establecer la columna en un valor null.The provider sets DBCOLUMNFLAGS_ISNULLABLE 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. Una columna puede contener valores null, aunque no se pueda establecer en un valor null.A column may contain null values, even if it cannot be set to a null value.
IsReadOnlyIsReadOnly DBCOLUMNFLAGS_WRITEDBCOLUMNFLAGS_WRITE true Si la columna no se puede modificar; en caso contrario, false .true if the column cannot be modified; otherwise false. Se supone que la columna es modificable si el proveedor ha establecido la marca DBCOLUMNFLAGS_WRITE o DBCOLUMNFLAGS_WRITEUNKNOWN.The column is assumed to be writable if the provider has set either the DBCOLUMNFLAGS_WRITE or DBCOLUMNFLAGS_WRITEUNKNOWN flag.
IsRowVersionIsRowVersion DBCOLUMNFLAGS_ISROWIDDBCOLUMNFLAGS_ISROWID El proveedor establece DBCOLUMNFLAGS_ISROWID si la columna contiene un identificador de fila persistente en el que no se puede escribir y no tiene ningún valor significativo excepto para identificar la fila.The provider sets DBCOLUMNFLAGS_ISROWID if the column contains a persistent row identifier that cannot be written to, and has no meaningful value except to identity the row.
IsUniqueIsUnique DBCOLUMN_ISUNIQUEDBCOLUMN_ISUNIQUE VARIANT_TRUE: no hay dos filas en la tabla base (la tabla devuelta en BaseTableName) puede tener el mismo valor en esta columna.VARIANT_TRUE: No two rows in the base table-the table returned in BaseTableName-can have the same value in this column. Se garantiza que se VARIANT_TRUE IsUnique si la columna representa una clave por sí misma o si hay una restricción de tipo UNIQUE que solo se aplica a esta columna.IsUnique is guaranteed to be VARIANT_TRUE if the column represents a key by itself or if there is a constraint of type UNIQUE that applies only to this column.

VARIANT_FALSE: la columna puede contener valores duplicados en la tabla base.VARIANT_FALSE: The column can contain duplicate values in the base table. El valor predeterminado de esta columna es VARIANT_FALSE.The default of this column is VARIANT_FALSE.
IsKeyIsKey DBCOLUMN_KEYCOLUMNDBCOLUMN_KEYCOLUMN VARIANT_TRUE: la columna es una de las columnas del conjunto de filas que, tomadas juntas, identifican de forma única la fila.VARIANT_TRUE: The column is one of a set of columns in the rowset that, taken together, uniquely identify the row. El conjunto de columnas con IsKey establecido en VARIANT_TRUE debe identificar de forma única una fila en el conjunto de filas.The set of columns with IsKey set to VARIANT_TRUE must uniquely identify a row in the rowset. No es necesario que este conjunto de columnas sea un conjunto mínimo de columnas.There is no requirement that this set of columns is a minimal set of columns. Este conjunto de columnas puede generarse a partir de una clave principal de la tabla base, una restricción única o un índice único.This set of columns may be generated from a base table primary key, a unique constraint or a unique index.

VARIANT_FALSE: la columna no es necesaria para identificar la fila de forma única.VARIANT_FALSE: The column is not required to uniquely identify the row.
IsAutoIncrementIsAutoIncrement DBCOLUMN_ISAUTOINCREMENTDBCOLUMN_ISAUTOINCREMENT VARIANT_TRUE: la columna asigna valores a las nuevas filas en incrementos fijos.VARIANT_TRUE: The column assigns values to new rows in fixed increments.

VARIANT_FALSE: la columna no asigna valores a las nuevas filas en incrementos fijos.VARIANT_FALSE: The column does not assign values to new rows in fixed increments. El valor predeterminado de esta columna es VARIANT_FALSE.The default of this column is VARIANT_FALSE.
BaseSchemaNameBaseSchemaName DBCOLUMN_BASESCHEMANAMEDBCOLUMN_BASESCHEMANAME Nombre del esquema del almacén de datos que contiene la columna.The name of the schema in the data store that contains the column. Un valor null si no se puede determinar el nombre del esquema base.A null value if the base schema name cannot be determined. El valor predeterminado de esta columna es un valor null.The default of this column is a null value.
BaseCatalogNameBaseCatalogName DBCOLUMN_BASECATALOGNAMEDBCOLUMN_BASECATALOGNAME Nombre del catálogo del almacén de datos que contiene la columna.The name of the catalog in the data store that contains the column. Valor null, si no se puede determinar el nombre del catálogo base.A null value if the base catalog name cannot be determined. El valor predeterminado de esta columna es un valor null.The default of this column is a null value.
BaseTableNameBaseTableName DBCOLUMN_BASETABLENAMEDBCOLUMN_BASETABLENAME Nombre de la tabla o vista del almacén de datos que contiene la columna.The name of the table or view in the data store that contains the column. Valor null, si no se puede determinar el nombre de la tabla base.A null value if the base table name cannot be determined. El valor predeterminado de esta columna es un valor null.The default of this column is a null value.
BaseColumnNameBaseColumnName DBCOLUMN_BASECOLUMNNAMEDBCOLUMN_BASECOLUMNNAME Nombre de la columna en el almacén de datos.The name of the column in the data store. Puede ser diferente del nombre de columna devuelto en la columna ColumnName si se usó un alias.This might be different from the column name returned in the ColumnName column if an alias was used. Un valor NULL si no se puede determinar el nombre de la columna base o si la columna del conjunto de filas es derivada, pero no idéntica a, una columna del almacén de datos.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. El valor predeterminado de esta columna es un valor null.The default of this column is a null value.

Nota

Para asegurarse de que las columnas de metadatos devuelven la información correcta, debe llamar a ExecuteReader con el behavior parámetro establecido en KeyInfo .To make sure that metadata columns return the correct information, you must call ExecuteReader with the behavior parameter set to KeyInfo. De lo contrario, algunas de las columnas de la tabla de esquema pueden devolver datos predeterminados, nulos o incorrectos.Otherwise, some of the columns in the schema table may return default, null, or incorrect data.

Se aplica a