Metodo SqlDataReader.GetSchemaTable (System.Data.SqlClient)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Metodo SqlDataReader.GetSchemaTable
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Restituisce un oggetto DataTable che descrive i metadati della colonna dell'oggetto SqlDataReader.

Spazio dei nomi:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)
Sintassi

Visual Basic
Public Overrides Function GetSchemaTable As DataTable
C#
public override DataTable GetSchemaTable()
Visual C++
public:
virtual DataTable^ GetSchemaTable() override
F#
abstract GetSchemaTable : unit -> DataTable 
override GetSchemaTable : unit -> DataTable 

Valore restituito

Tipo: System.Data.DataTable
Oggetto DataTable che descrive i metadati della colonna.

Implementa

IDataReader.GetSchemaTable()
IDataReader.GetSchemaTable()
Eccezioni

Eccezione Condizione
InvalidOperationException

La classe SqlDataReader è chiusa.

Note

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 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.

Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 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.
Vedere anche

Riferimenti