Condividi tramite


IDataAdapter.Fill(DataSet) Metodo

Definizione

Aggiunge o aggiorna righe nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando il DataSet nome e crea un DataTable oggetto 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 da compilare con record e, se necessario, schema.

Restituisce

Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.

Commenti

Fill recupera le righe dall'origine dati utilizzando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto 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 in DataSet, creando gli DataTable oggetti se non esistono già. Quando si creano DataTable oggetti, l'operazione Fill in genere crea solo i metadati dei nomi di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi primarie e vincoli appropriati.

Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È 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 rileva colonne duplicate durante il 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 inserite in DataSet in 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.

Quando l'istruzione SELECT utilizzata per popolare restituisce DataSet più risultati, ad esempio un'istruzione SQL batch, se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non aggiunti a 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 aggiunte all'oggetto DataTable.

Annotazioni

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