Restituisce un oggetto DataTable che descrive i metadati della colonna dell'oggetto SqlDataReader.
Assembly: System.Data (in System.Data.dll)
Public Overrides Function GetSchemaTable As DataTable
public override DataTable GetSchemaTable()
public: virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable override GetSchemaTable : unit -> DataTable
Valore restituito
Tipo: System.Data.DataTableOggetto DataTable che descrive i metadati della colonna.
Implementa
IDataReader.GetSchemaTable()IDataReader.GetSchemaTable()
| Eccezione | Condizione |
|---|---|
| InvalidOperationException |
La classe SqlDataReader è chiusa. |
Dal metodo GetSchemaTable sono restituiti metadati relativi a ciascuna colonna nell'ordine seguente:
|
Colonna DataReader |
Oggetto di descrizione |
|---|---|
|
NomeColonna |
Nome della colonna; è possibile che non sia univoco. Se non è possibile determinarlo, verrà restituito un valore null. Questo nome riflette sempre la denominazione più recente della colonna nella visualizzazione corrente o nel testo del comando. |
|
ColumnOrdinal |
Ordinale della colonna. È uguale a zero per la colonna segnalibro della riga, se presente. Le altre colonne sono numerate a partire da uno. La colonna non può contenere un valore null. |
|
ColumnSize |
Lunghezza massima possibile di un valore nella colonna. Per le colonne in cui è utilizzato un tipo di dati a lunghezza fissa, la dimensione del tipo di dati. Per le colonne nvarchar(MAX), varchar(MAX) e varbinary(MAX) memorizzate in un database SQL Server database, la dimensione massima è 2 GB. Se si memorizzano queste colonne e vi si accede come se fossero file, il limite della dimensione massima viene imposto dal file system. Questo valore cambia se si utilizza la parola chiave Type System Version nella stringa di connessione. Per i nuovi tipi, vengono rappresentati come tipi di livello inferiore. I tipi di dati MAX restituiscono i normali 4k per nvarchar e 8000 per varchar. Per ulteriori informazioni, vedere il riferimento a Transact-SQL nella documentazione online di SQL Server. |
|
NumericPrecision |
Se ProviderType è un tipo di dati numerico, è la precisione massima della colonna. La precisione dipende dalla definizione della colonna. Se ProviderType non è un tipo di dati numerico, si tratta di un valore null. |
|
NumericScale |
Se ProviderType è DBTYPE_DECIMAL o DBTYPE_NUMERIC, il numero di cifre a destra del simbolo decimale. In caso contrario, un valore null. |
|
IsUnique |
true solo per le colonne timestamp e false per tutte le altre colonne. |
|
IsKey |
true: la colonna è un gruppo di colonne nel rowset che, congiuntamente, identificano in modo univoco la riga. È necessario che il gruppo di colonne con IsKey impostato su true identifichi in maniera univoca una riga nel rowset. Non è necessario che questo gruppo di colonne rappresenti un gruppo di colonne minimo. Il gruppo di colonne potrebbe essere generato da una chiave primaria della tabella di base, da un vincolo univoco o da un indice univoco. false: Non è necessario che la colonna identifichi la riga in modo univoco. |
|
BaseServerName |
Nome dell'istanza di Microsoft SQL Server utilizzato dall'oggetto SqlDataReader. |
|
BaseCatalogName |
Nome del catalogo nell'archivio dati contenente la colonna. Null se non è possibile determinare il nome del catalogo di base. Il valore predefinito della colonna è un valore null. |
|
BaseColumnName |
Nome della colonna nell'archivio dati. Potrebbe essere diverso rispetto al nome della colonna restituito nella colonna ColumnName se è stato utilizzato un alias. Valore null, se non è possibile determinare il nome della colonna di base o se la colonna del rowset è derivata, ma non identica, a una colonna nell'archivio dati. Il valore predefinito della colonna è un valore null. |
|
BaseSchemaName |
Nome dello schema nell'archivio dati contenente la colonna. Valore null, se è impossibile determinare il nome dello schema di base. Il valore predefinito della colonna è un valore null. |
|
BaseTableName |
Nome della tabella o della visualizzazione nell'archivio dati contenente la colonna. Valore null, se non è possibile determinare il nome della tabella di base. Il valore predefinito della colonna è un valore null. |
|
DataType |
Esegue il mapping al tipo .NET Framework della colonna. |
|
AllowDBNull |
Impostare questo valore se il consumer può impostare la colonna su un valore null o se non è possibile determinare, mediante il provider, se il consumer può impostare la colonna su un valore null. In caso contrario, non impostato. Una colonna può contenere valori null, anche se non è possibile impostarla su un valore null. |
|
ProviderType |
Indicatore del tipo di dati della colonna. Se il tipo di dati della colonna varia da riga a riga, il tipo dovrà essere Object. La colonna non può contenere un valore null. |
|
IsAliased |
true se il nome della colonna è un alias; in caso contrario false. |
|
IsExpression |
true se la colonna è un'espressione; in caso contrario false. |
|
IsIdentity |
true se la colonna è una colonna di identità; in caso contrario false. |
|
IsAutoIncrement |
true: la colonna assegna alle nuove righe valori in incrementi fissi. false: i valori non vengono assegnati dalla colonna alle nuove righe in incrementi fissi. Il valore predefinito di questa colonna è false. |
|
IsRowVersion |
Impostato se la colonna contiene un identificatore di riga persistente, che non è possibile modificare, e non dispone di un valore significativo tranne che per identificare la riga. |
|
IsHidden |
true se la colonna è nascosta; in caso contrario false. |
|
IsLong |
Impostato, se la colonna contiene un oggetto Binary Long Object (BLOB) che contiene dati molto lunghi. La definizione dei dati molto lunghi è specifica del provider. |
|
IsReadOnly |
true se non è possibile modificare la colonna, in caso contrario false. |
|
ProviderSpecificDataType |
Restituisce il tipo di dati specifico del provider della colonna basata sulla parola chiave Type System Version nella stringa di connessione. |
|
DataTypeName |
Restituisce una stringa che rappresenta il tipo di dati della colonna specificata. |
|
XmlSchemaCollectionDataBase |
Nome del database in cui si trova l'insieme di schemi di questa istanza XML, se la riga contiene informazioni su una colonna XML. Questo valore è null (Nothing in Microsoft Visual Basic) se l'insieme viene definito nel database corrente. È inoltre null se non è presente alcun insieme di schema, nel qual caso anche le colonne XmlSchemaCollectionName and XmlSchemaCollectionOwningSchema sono null. |
|
XmlSchemaCollectionOwningSchema |
Schema relazionale di appartenenza in cui si trova l'insieme di schemi di questa istanza XML, se la riga contiene informazioni su una colonna XML. Questo valore è null (Nothing in Microsoft Visual Basic) se l'insieme viene definito nel database corrente. È inoltre null se non è presente alcun insieme di schema, nel qual caso anche le colonne XmlSchemaCollectionDatabase and XmlSchemaCollectionName sono null. |
|
XmlSchemaCollectionName |
Nome dell'insieme di schemi di questa istanza XML, se la riga contiene informazioni su una colonna XML. Questo valore è null (Nothing in Visual Basic) se non esiste alcun insieme di schemi associato. Se il valore è null, anche le colonne XmlSchemaCollectionDatabase e XmlSchemaCollectionOwningSchema sono null. |
Nota
|
|---|
|
Affinché le colonne di metadati restituiscano le informazioni corrette, è necessario chiamare il metodo ExecuteReader con il parametro behavior impostato su KeyInfo. In caso contrario, alcune colonne della tabella di schema potrebbero restituire dati predefiniti, nulli o non corretti. |
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Nota