Condividi tramite


IDataAdapter.FillSchema(DataSet, SchemaType) Metodo

Definizione

Aggiunge un oggetto DataTable denominato "Table" all'oggetto DataSet specificato e configura lo schema perché corrisponda a quello presente nell'origine dati basato sull'oggetto SchemaType specificato.

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

Parametri

dataSet
DataSet

Oggetto DataSet in cui inserire lo schema dall'origine dati.

schemaType
SchemaType

Uno dei valori di SchemaType.

Restituisce

Matrice di oggetti DataTable che contiene informazioni di schema restituite dall'origine dati.

Commenti

Il FillSchema metodo recupera lo schema dall'origine dati usando .SelectCommand L'oggetto connessione associato SelectCommand a deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima FillSchema della chiamata, viene aperta per recuperare i dati, quindi chiusa. Se la connessione è aperta prima FillSchema della chiamata, rimane aperta.

Un'operazione FillSchema aggiunge un DataTable oggetto alla destinazione DataSet. Aggiunge quindi le colonne a DataColumnCollection di DataTable e configura le proprietà seguenti DataColumn , se presenti nell'origine dati:

FillSchema configura anche le PrimaryKey proprietà e Constraints in base alle regole seguenti:

  • Se una o più colonne chiave primaria vengono restituite da SelectCommand, vengono usate come colonne chiave primaria per .DataTable

  • Se non vengono restituite colonne chiave primaria ma colonne univoche, le colonne univoche vengono usate come chiave primaria se tutte le colonne univoche non sono nullable. Se una delle colonne è nullable, viene aggiunto a UniqueConstraintConstraintCollection, ma la PrimaryKey proprietà non è impostata.

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

Si noti che le chiavi primarie e i vincoli univoci vengono aggiunti a in base alle ConstraintCollection regole precedenti, ma altri tipi di vincolo non vengono aggiunti.

Se un indice cluster univoco viene definito in una colonna o in colonne in una tabella SQL Server e il vincolo di chiave primaria viene definito in un set separato di colonne, verranno restituiti i nomi delle colonne nell'indice cluster. Per restituire il nome o i nomi delle colonne chiave primaria, usare un hint per la query con l'istruzione SELECT che specifica il nome dell'indice di chiave primaria. Per altre informazioni su come specificare hint per la query, vedere Hint (Transact-SQL) - Query.

Se rileva colonne duplicate durante il IDataAdapter popolamento di , DataTablegenera nomi per le colonne successive, usando il criterio "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono inserite in DataSet base al modello "Column1", "Column2" e così via. Quando vengono aggiunti più set di risultati a DataSet, ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Le applicazioni devono prestare attenzione quando si usano nomi di colonna e di tabella per assicurarsi che non si verifichino conflitti con questi modelli di denominazione.

FillSchema non restituisce righe. Usare il Fill metodo per aggiungere righe a un oggetto DataTable.

Si applica a

Vedi anche