OleDbDataReader.GetSchemaTable Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un oggetto DataTable che descrive i metadati della colonna dell'oggetto OleDbDataReader.
public:
override System::Data::DataTable ^ GetSchemaTable();
public:
virtual System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable? GetSchemaTable();
public System.Data.DataTable GetSchemaTable();
public override 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
Valori restituiti
Oggetto DataTable che descrive i metadati della colonna.
Implementazioni
Eccezioni
L'oggetto OleDbDataReader è chiuso.
Commenti
Il GetSchemaTable metodo esegue il mapping al metodo OLE DB IColumnsRowset::GetColumnsRowset e restituisce i metadati relativi a ogni colonna nell'ordine seguente:
| Colonna DataReader | ID colonna OLE DB | Description |
|---|---|---|
| ColumnName | DBCOLUMN_NAME | Nome della colonna; potrebbe non essere univoco. Se non è possibile determinare questo valore, viene restituito un valore Null. Questo nome riflette sempre la ridenominazione più recente della colonna nella visualizzazione o nel testo del comando corrente. |
| ColumnOrdinal | DBCOLUMN_NUMBER | Ordinale in base zero della colonna. Questa colonna non può contenere un valore Null. |
| DimensioneColonna | DBCOLUMN_COLUMNSIZE | Lunghezza massima possibile di un valore nella colonna. Per le colonne che usano un tipo di dati a lunghezza fissa, si tratta delle dimensioni del tipo di dati. |
| NumericPrecision | DBCOLUMN_PRECISION | Se DbType è un tipo di dati numerico, si tratta della precisione massima della colonna. La precisione delle colonne con un tipo di dati di DBTYPE_DECIMAL o DBTYPE_NUMERIC dipende dalla definizione della colonna. Se DbType non è un tipo di dati numerico, si tratta di un valore Null. |
| NumericScale | DBCOLUMN_SCALE | Se DbType è DBTYPE_DECIMAL o DBTYPE_NUMERIC, questo è il numero di cifre a destra del separatore decimale. In caso contrario, si tratta di un valore Null. |
| Tipo di dati | Nessuno | Esegue il mapping al tipo di .NET della colonna. |
| ProviderType | DBCOLUMN_TYPE | Indicatore del tipo di dati della colonna. Se il tipo di dati della colonna varia da riga a riga, deve essere DBTYPE_VARIANT. Questa colonna non può contenere un valore Null. |
| IsLong | DBCOLUMNFLAGS_ISLONG | Il provider imposta DBCOLUMNFLAGS_ISLONG se la colonna contiene un oggetto BLOB (Binary Long Object) che contiene dati molto lunghi. La definizione di dati molto lunghi è specifica del provider. L'impostazione di questo flag corrisponde al valore della colonna IS_LONG nel set di righe PROVIDER_TYPES per il tipo di dati. |
| Allowdbnull | DBCOLUMNFLAGS_ISNULLABLE | Il provider imposta DBCOLUMNFLAGS_ISNULLABLE se il consumer può impostare la colonna su un valore Null oppure se il provider non è in grado di determinare se il consumer può impostare la colonna su un valore Null. Una colonna può contenere valori Null, anche se non può essere impostata su un valore Null. |
| IsReadOnly | DBCOLUMNFLAGS_WRITE |
true se la colonna non può essere modificata; in caso contrario false, . Si presuppone che la colonna sia scrivibile se il provider ha impostato il flag DBCOLUMNFLAGS_WRITE o DBCOLUMNFLAGS_WRITEUNKNOWN. |
| IsRowVersion | DBCOLUMNFLAGS_ISROWID | Il provider imposta DBCOLUMNFLAGS_ISROWID se la colonna contiene un identificatore di riga persistente in cui non è possibile scrivere e non ha alcun valore significativo, ad eccezione dell'identità della riga. |
| IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: nella tabella di base non sono presenti due righe, ovvero la tabella restituita in BaseTableName, può avere lo stesso valore in questa colonna. IsUnique è garantito che sia VARIANT_TRUE se la colonna rappresenta una chiave da sola o se è presente un vincolo di tipo UNIQUE che si applica solo a questa colonna. VARIANT_FALSE: la colonna può contenere valori duplicati nella tabella di base. Il valore predefinito di questa colonna è VARIANT_FALSE. |
| Iskey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE: la colonna è una di un set di colonne nel set di righe che, insieme, identificano in modo univoco la riga. Il set di colonne con IsKey impostato su VARIANT_TRUE deve identificare in modo univoco una riga nel set di righe. Non è necessario che questo set di colonne sia un set minimo di colonne. Questo set di colonne può essere generato da una chiave primaria della tabella di base, da un vincolo univoco o da un indice univoco. VARIANT_FALSE: la colonna non è necessaria per identificare in modo univoco la riga. |
| IsAutoIncrement | DBCOLUMN_ISAUTOINCREMENT | VARIANT_TRUE: la colonna assegna valori alle nuove righe in incrementi fissi. VARIANT_FALSE: la colonna non assegna valori alle nuove righe in incrementi fissi. Il valore predefinito di questa colonna è VARIANT_FALSE. |
| BaseSchemaName | DBCOLUMN_BASESCHEMANAME | Nome dello schema nell'archivio dati che contiene la colonna. Valore Null se non è possibile determinare il nome dello schema di base. Il valore predefinito di questa colonna è un valore Null. |
| BaseCatalogName | DBCOLUMN_BASECATALOGNAME | Nome del catalogo nell'archivio dati che contiene la colonna. Valore Null se non è possibile determinare il nome del catalogo di base. Il valore predefinito di questa colonna è un valore Null. |
| BaseTableName | DBCOLUMN_BASETABLENAME | Nome della tabella o della vista nell'archivio dati che contiene la colonna. Valore Null se non è possibile determinare il nome della tabella di base. Il valore predefinito di questa colonna è un valore Null. |
| BaseColumnName | DBCOLUMN_BASECOLUMNNAME | Nome della colonna nell'archivio dati. Questo potrebbe essere diverso dal nome della colonna restituito nella colonna ColumnName se è stato usato un alias. Valore Null se non è possibile determinare il nome della colonna di base o se la colonna del set di righe è derivata, ma non identica a, una colonna nell'archivio dati. Il valore predefinito di questa colonna è un valore Null. |
Note
Per assicurarsi che le colonne di metadati restituiscono le informazioni corrette, è necessario chiamare ExecuteReader con il behavior parametro impostato su KeyInfo. In caso contrario, alcune colonne della tabella dello schema potrebbero restituire dati predefiniti, Null o non corretti.