IDataAdapter.Fill(DataSet) Metodo

Definizione

Aggiunge o aggiorna righe nell'oggetto DataSet affinché corrispondano a quelle presenti nell'origine dati utilizzando il nome dell'oggetto DataSet e crea un oggetto DataTable denominato "Table".

public:
 int Fill(System::Data::DataSet ^ dataSet);
public int Fill (System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
Public Function Fill (dataSet As DataSet) As Integer

Parametri

dataSet
DataSet

Oggetto DataSet in cui inserire i record e, se necessario, lo schema.

Restituisce

Numero di righe aggiunte o aggiornate correttamente nell'oggetto DataSet. Non sono incluse righe modificate da istruzioni che non restituiscono righe.

Commenti

Fill recupera le righe dall'origine dati usando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto di connessione associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima Fill della chiamata, viene aperta per recuperare i dati, quindi chiusa. Se la connessione è aperta prima Fill della chiamata, rimane aperta.

L'operazione Fill aggiunge quindi le righe agli oggetti di destinazione DataTable nell'oggetto DataSet, creando gli DataTable oggetti se non esistono già. Quando si creano oggetti, l'operazione Fill in genere crea DataTable solo metadati dei nomi di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi e vincoli primari appropriati.

Se SelectCommand restituisce i risultati di un OUTER JOIN, mediante DataAdapter non viene impostato un valore di PrimaryKey per l'oggetto DataTablerisultante. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.

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.

Quando l'istruzione SELECT usata per popolare i DataSet risultati restituisce più risultati, ad esempio un'istruzione SQL batch, se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non aggiunti all'oggetto DataSet.

È possibile usare il Fill metodo più volte nello stesso DataTableoggetto . Se esiste una chiave primaria, le righe in ingresso vengono unite con righe corrispondenti già esistenti. Se non esiste alcuna chiave primaria, le righe in ingresso vengono accodate all'oggetto DataTable.

Nota

Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di Fill e FillSchema per un provider di dati .NET Framework recupera le informazioni sullo schema solo per il primo risultato.

Si applica a

Vedi anche