IDataAdapter.FillSchema(DataSet, SchemaType) Metodo

Definizione

Aggiunge un oggetto DataTable denominato "Table" all'oggetto DataSet specificato e configura lo schema in modo che corrisponda a quello nell'origine dati in base all'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

DataTable[]

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 di connessione associato all'oggetto SelectCommand 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 oggetto DataTable alla destinazione DataSet. Aggiunge quindi colonne all'oggetto DataColumnCollection 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 dall'oggetto 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 aggiunta ConstraintCollectiona UniqueConstraint , ma la PrimaryKey proprietà non è impostata.

  • Se vengono restituite sia colonne chiave primaria che 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 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 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 di query con l'istruzione SELECT che specifica il nome dell'indice chiave primaria. Per altre informazioni su come specificare hint di query, vedere Hint (Transact-SQL) - Query.

Se le colonne duplicate vengono visualizzate durante la IDataAdapter popolamento di , DataTablegenera nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono inseriti in DataSet base al modello "Column1", "Column2" e così via. Quando vengono aggiunti più set di risultati all'oggetto 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 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 DataTableoggetto .

Si applica a

Vedi anche