Metodo SqlCeDataReader.GetSchemaTable
Restituisce una classe DataTable che descrive i metadati della colonna della classe SqlCeDataReader.
Spazio dei nomi System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)
Sintassi
'Dichiarazione
Public Overrides Function GetSchemaTable As DataTable
'Utilizzo
Dim instance As SqlCeDataReader
Dim returnValue As DataTable
returnValue = instance.GetSchemaTable()
public override DataTable GetSchemaTable()
public:
virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable
override GetSchemaTable : unit -> DataTable
public override function GetSchemaTable() : DataTable
Valore restituito
Tipo: System.Data.DataTable
Classe DataTable che descrive i metadati della colonna.
Implementa
Eccezioni
Eccezione | Condizione |
---|---|
InvalidOperationException | L'operazione non è valida. L'oggetto SqlCeDataReader può essere posizionato dopo l'ultima riga nel set di risultati. |
Osservazioni
Se da parte della classe SqlCeDataReader vengono lette colonne da più di una tabella di base, la classe SqlCeDataReader non compilerà la tabella dello schema con valori IsKey. Questo comportamento è simile a quello di una query SELECT:
SELECT FirstName, LastName, 1+2 FROM Employees
La query legge colonne da due tabelle diverse, ovvero la tabella Employees nel database Northwind e la tabella temporanea creata per 1+2.
Il metodo GetSchemaTable esegue il mapping al metodo OLE DB IColumnsRowset::GetColumnsRowset e restituisce i metadati relativi a ciascuna colonna nell'ordine seguente:
Colonna tabella di schema |
Descrizione |
---|---|
ColumnName |
Nome della colonna. È possibile che questo nome non sia univoco. Se non è possibile determinare il nome, 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. Il numero ordinale inizia con zero. In SQL Server Compact non sono supportati i segnalibri. |
ColumnSize |
Lunghezza massima possibile di un valore nella colonna. Per le colonne in cui è utilizzato un tipo di dati a lunghezza fissa, la lunghezza massima corrisponde alla dimensione del tipo di dati. |
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 |
Se il valore è true, nella tabella di base, ovvero quella restituita in BaseTableName, non possono essere presenti due righe con lo stesso valore nella colonna specifica. Il valore di IsUnique è true se la colonna costituisce una chiave o se è presente un vincolo di tipo UNIQUE che si applica solo alla colonna specifica. Se il valore è false, la colonna può contenere valori duplicati nella tabella di base. Il valore predefinito di questa colonna è false. |
IsKey |
Se il valore è true, la colonna appartiene a un set di colonne nel set di righe che, congiuntamente, identificano in modo univoco la riga. Il set di colonne per cui il valore di IsKey è impostato su true deve identificare in modo univoco una riga in un set di righe. Non è necessario che questo set rappresenti un set minimo di colonne. Il set di colonne potrebbe essere generato da una chiave primaria della tabella di base, da un vincolo univoco o da un indice univoco. Se il valore è false, non è necessario che la colonna identifichi la riga in modo univoco. |
BaseColumnName |
Nome della colonna nell'archivio dati. Il nome rappresenta un 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 di questa colonna è null. |
BaseTableName |
Nome della tabella nell'archivio dati contenente la colonna. Il nome è un valore null se non è possibile determinare il nome della tabella di base. Il valore predefinito di questa colonna è 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 impostare il valore. Una colonna può contenere valori null, anche se non è possibile impostarla su un valore null. |
ProviderType |
Indicatore del tipo di dati della colonna. In questa colonna non può essere presente un valore null. |
IsAutoIncrement |
Se il valore è true, la colonna assegna alle nuove righe valori in incrementi fissi. Se il valore è false, i valori non vengono assegnati 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. |
IsLong |
Impostato, se nella colonna è presente un oggetto di tipo Binary Long Object (BLOB) che contiene dati molto lunghi. |
IsReadOnly |
Se il valore è true, la colonna può essere modificata. Se è false, non è possibile modificare la colonna. |