SqlDataReader.GetSchemaTable Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un objeto DataTable que describe los metadatos de columna del 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
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 la 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 actual Type System Version especificado en la 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 de la 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 del UDT según AssemblyQualifiedName. Si la columna no es un UDT, es null. |
XmlSchemaCollectionDatabase | Nombre de la base de datos donde se encuentra 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 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 para 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.