Share via


SqlCeDataReader.GetSchemaTable Method

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
public override DataTable GetSchemaTable ()
public:
virtual DataTable^ GetSchemaTable () override
public DataTable GetSchemaTable ()
public override function GetSchemaTable () : DataTable

Valore restituito

Classe DataTable che descrive i metadati della colonna.

Eccezioni

Tipo di eccezione Condizione
InvalidOperationException

L'operazione non è valida. L'oggetto SqlCeDataReader non può essere posizionato dopo l'ultima riga nel gruppo 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 3.5 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 insieme di colonne nel rowset che, congiuntamente, identificano in modo univoco la riga. L'insieme di colonne per cui il valore di IsKey è impostato su true deve identificare in modo univoco una riga in un rowset. Non è necessario che questo insieme rappresenti un insieme minimo di colonne. Il gruppo 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.

Affidabilità

Tutti i membri statici pubblici (Shared in Microsoft Visual Basic) di questo tipo sono affidabili. Non è invece garantita l'affidabilità dei membri dell'istanza.

Piattaforme

Piattaforme di sviluppo

Windows Vista, Windows Mobile 5.0, Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Mobile 2003 for Pocket PC, Windows CE 5.0
Informazioni sulla versione
.NET Framework e .NET Compact Framework
Supportato in 3.5
.NET Framework
Supportato in 3.0
.NET Compact Framework e .NET Framework
Supportato in 2.0

Vedere anche

Riferimento

SqlCeDataReader Class
SqlCeDataReader Members
System.Data.SqlServerCe Namespace