Condividi tramite


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

IDataReader.GetSchemaTable()

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.

Vedere anche

Riferimento

SqlCeDataReader Classe

Spazio dei nomi System.Data.SqlServerCe