SqlDataReader.GetSchemaTable Método

Definición

Devuelve un objeto DataTable que describe los metadatos de columna del SqlDataReader.

public:
 override System::Data::DataTable ^ GetSchemaTable();
public:
 virtual 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 que describe los metadatos de columna.

Implementaciones

Excepciones

La clase SqlDataReader está cerrada.

Comentarios

El GetSchemaTable método devuelve los metadatos siguientes sobre cada columna:

Columna DataReader Descripción
AllowDBNull Establezca 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. En caso contrario, no se establece. Una columna puede contener valores null, aunque no se pueda establecer en un valor null.
BaseCatalogName Nombre del catálogo del almacén de datos que contiene la columna. NULL si no se puede determinar el nombre del catálogo base. El valor predeterminado de esta columna es un valor NULL.
BaseColumnName Nombre de la columna en el almacén de datos. Puede ser diferente del nombre de columna devuelto en la columna ColumnName si se usó un alias. Valor NULL si no se puede determinar el nombre de la columna base o si la columna del conjunto de filas se deriva, pero no idéntica a, una columna en el almacén de datos. El valor predeterminado de esta columna es un valor NULL.
BaseSchemaName Nombre del esquema del almacén de datos que contiene la columna. Un valor null si no se puede determinar el nombre del esquema base. El valor predeterminado de esta columna es un valor NULL.
BaseServerName Nombre de la instancia de Microsoft SQL Server usada por .SqlDataReader
BaseTableName Nombre de la tabla o vista del almacén de datos que contiene la columna. Valor null, si no se puede determinar el nombre de la tabla base. El valor predeterminado de esta columna es un valor NULL.
ColumnName Nombre de la columna; esto podría no ser único. Si no se puede determinar, se devuelve un valor null. Este nombre refleja siempre el cambio de nombre más reciente de la columna en el texto de la vista o el comando actual.
ColumnOrdinal Ordinal basado en cero de la columna. Esta columna no puede contener un valor.
ColumnSize Longitud máxima permitida para un valor de la columna. Para las columnas que usan un tipo de datos de longitud fija, este es el tamaño del tipo de datos. Para nvarchar(MAX)las columnas , varchar(MAX)y varbinary(MAX) almacenadas en una base de datos de SQL Server, el tamaño máximo es de 2 GB. Si se almacenan y se accede a estas columnas como archivos, el sistema de archivos impone el límite de tamaño máximo. Este valor cambia cuando se usa la Type System Version palabra clave en el cadena de conexión. Para los nuevos tipos, se representan como tipos de nivel inferior. Los tipos de datos MAX devuelven los 4k normales para nvarchar y 8000 para varchar. Para obtener más información, consulte la referencia de Transact-SQL.
DataTypeName Devuelve una cadena que representa el tipo de datos de la columna especificada.
IsAliased true: el nombre de columna es un alias.

false: el nombre de columna no es un alias.
IsAutoIncrement true: la columna asigna valores a nuevas filas en incrementos fijos.

false: la columna no asigna valores a nuevas filas en incrementos fijos. El valor predeterminado de esta columna es false.
IsColumnSet true: la columna es una columna dispersa que es miembro de un conjunto de columnas.
IsExpression true: la columna es una expresión.

false: la columna no es una expresión.
IsHidden true: la columna está oculta.

false: la columna no está oculta.
IsIdentity true: la columna es una columna de identidad.

false: la columna no es una columna de identidad.
IsKey true: la columna es uno de un conjunto de columnas del conjunto de filas que, en conjunto, identifican de forma única la fila. El conjunto de columnas con IsKey establecido en true debe identificar de forma única una fila del conjunto de filas. No es necesario que este conjunto de columnas sea un conjunto mínimo de columnas. Este conjunto de columnas puede generarse a partir de una clave principal de la tabla base, una restricción única o un índice único.

false: la columna no es necesaria para identificar de forma única la fila.
IsLong true: la columna contiene un objeto long binario (BLOB) que contiene datos muy largos. La definición de la cantidad de datos es específica del proveedor.

false: la columna no contiene un objeto long binario (BLOB) que contiene datos muy largos.
IsReadOnly true: no se puede modificar la columna.

false: la columna se puede modificar.
IsRowVersion true: 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.

false: la columna no 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.
IsUnique true: la columna es de tipo timestamp.

false: la columna no es de tipo timestamp.
NonVersionedProviderType Tipo de la columna independientemente del objeto actual Type System Version especificado en el cadena de conexión. El valor devuelto procede de la SqlDbType enumeración .
NumericPrecision Si ProviderType es un tipo de datos numérico, esta es la precisión máxima de la columna. La precisión depende de la definición de la columna. Si ProviderType no es un tipo de datos numérico, es 255.
NumericScale Si ProviderType es DBTYPE_DECIMAL o DBTYPE_NUMERIC, el número de dígitos a la derecha del separador decimal. De lo contrario, es 255.
ProviderSpecificDataType Devuelve el tipo de datos específico del proveedor de la columna basándose en la Type System Version palabra clave del cadena de conexión.
ProviderType Indicador del tipo de datos de la columna. Si el tipo de datos de la columna varía de fila a fila, debe ser Object. Esta columna no puede contener un valor.
UdtAssemblyQualifiedName Si la columna es un tipo definido por el usuario (UDT), este es el nombre completo del ensamblado AssemblyQualifiedNamedel UDT según . Si la columna no es un UDT, es null.
XmlSchemaCollectionDatabase Nombre de la base de datos donde se encuentra la colección de esquemas para esta instancia XML, si la fila contiene información sobre una columna XML. Este valor es null (Nothing en Visual Basic) si la colección se define dentro de la base de datos actual. También es null si no hay ninguna colección de esquemas, en cuyo caso las XmlSchemaCollectionName columnas y XmlSchemaCollectionOwningSchema también son null.
XmlSchemaCollectionName Nombre de la colección de esquemas de esta instancia XML, si la fila contiene información sobre una columna XML. Este valor es null (Nothing en Visual Basic) si no hay ninguna colección de esquemas asociada. Si el valor es null, las XmlSchemaCollectionDatabase columnas y XmlSchemaCollectionOwningSchema también son null.
XmlSchemaCollectionOwningSchema Esquema relacional propietario donde se encuentra la colección de esquemas para esta instancia XML, si la fila contiene información sobre una columna XML. Este valor es null (Nothing en Visual Basic) si la colección se define dentro de la base de datos actual. También es null si no hay ninguna colección de esquemas, en cuyo caso las XmlSchemaCollectionDatabase columnas y XmlSchemaCollectionName también son null.

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. De lo contrario, algunas de las columnas de la tabla de esquema pueden devolver datos predeterminados, null o incorrectos.

Se aplica a

Consulte también