Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataAdapter.FillSchema (DataSet, SchemaType)

 

Data di pubblicazione: ottobre 2016

Aggiunge un DataTable specificato DataSet e configura lo schema per la corrispondenza che nell'origine dati basato sull'oggetto specificato SchemaType.

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

public virtual DataTable[] FillSchema(
	DataSet dataSet,
	SchemaType schemaType
)

Parametri

dataSet
Type: System.Data.DataSet

Il DataSet deve essere compilato con lo schema dall'origine dati.

schemaType
Type: System.Data.SchemaType

Uno dei valori di SchemaType.

Valore restituito

Type: System.Data.DataTable[]

Oggetto DataTable oggetto che contiene informazioni sullo schema restituite dall'origine dati.

Il FillSchema metodo recupera lo schema dall'origine dati utilizzando il SelectCommand. L'oggetto connessione associato il SelectCommand deve essere valido, ma non deve essere aperta. Se la connessione viene chiusa prima FillSchema viene chiamato, verrà aperto per recuperare i dati, quindi viene chiusa. Se la connessione è aperta prima di FillSchema viene chiamato, rimane aperto.

Oggetto FillSchema consente di aggiungere un DataTable alla destinazione DataSet. Aggiunge quindi le colonne per la DataColumnCollection del DataTable, e configura gli elementi seguenti DataColumn proprietà se esistono nell'origine dati:

FillSchema Configura inoltre la PrimaryKey e Constraints proprietà in base alle regole seguenti:

  • Se uno o più colonne chiave primaria vengono restituite dal SelectCommand, utilizzate come colonne chiave primaria per il DataTable.

  • Se viene restituita alcuna colonna di chiave primaria, ma sono colonne univoche, le colonne univoche vengono utilizzate come chiave primaria se e solo se tutte le colonne univoche sono ammessi valori null. Se una delle colonne sono nullable, un UniqueConstraint viene aggiunto per il ConstraintCollection, ma il PrimaryKey non è impostata.

  • Se vengono restituite sia colonne chiave primaria che colonne univoche, le colonne chiave primaria vengono utilizzate come colonne chiave primaria per il DataTable.

System_CAPS_noteNota

L'archivio dati sottostante può consentire gli attributi di colonna che non sono supportati in un DataColumn, alcuni attributi di colonna per la conversione non corretta. Ad esempio, SQL Server consente una colonna identity con un tipo di dati tinyint mentre un DataColumn consente solo Int16, Int32 e Int64 per i AutoIncrement set di proprietà. FillSchema Ignora senza avvisare i casi in cui il DataColumn non può eseguire un mirroring accurato dell'origine dati e non genera eccezioni.

Si noti che le chiavi primarie e i vincoli unique vengono aggiunto il ConstraintCollection in base alle regole precedenti, ma altri vincoli non vengono aggiunti i tipi.

Se il cluster univoco indice è definito in una o più colonne in una tabella di SQL Server e il vincolo di chiave primaria è definito in un set separato di colonne, verranno restituito i nomi delle colonne nell'indice cluster. Per restituire il nome o i nomi delle colonne chiave primaria, utilizzare un hint per la query con l'istruzione SELECT che specifica il nome dell'indice di chiave primaria. Per ulteriori informazioni sulla specifica di hint per la query, vedere Query Hint (Transact-SQL).

Se il DataAdapter rileva colonne duplicate durante la compilazione di un DataTable, genera nomi per le colonne successive utilizzando il modello "columnname1", "columnname2","columnname3" e così via. Se i dati in arrivo contengono colonne senza nome, vengono inseriti nel DataSet secondo il criterio "Column1", "Column2" e così via. Quando vengono aggiunte più set di risultati per il DataSet ogni set di risultati viene inserito in una tabella separata. Set di risultati aggiuntivi sono denominati aggiungendo i valori integrali al nome della tabella specificato (ad esempio, "Table", "Table1", "Table2" e così via). Applicazioni che utilizzano nomi di colonna e tabella è necessario assicurarsi che non si verifichino conflitti con i criteri di denominazione.

FillSchema non restituisce alcuna riga. Utilizzare il Fill metodo per aggiungere righe a un DataTable.

System_CAPS_noteNota

Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di FillSchema per il Provider di dati .NET Framework per OLE DB consente di recuperare informazioni sullo schema per il primo risultato. Per recuperare informazioni sullo schema per più risultati, utilizzare Fill con il MissingSchemaAction impostato su AddWithKey.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: