Freigeben über


IDataAdapter.Fill(DataSet) Methode

Definition

Fügt Zeilen in der DataSet Datenquelle mithilfe des Namens hinzu oder aktualisiert sie, um zeilenweise mit denen DataSet in der Datenquelle übereinzustimmen, und erstellt eine DataTable benannte "Tabelle".

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

Parameter

dataSet
DataSet

A DataSet zum Ausfüllen von Datensätzen und bei Bedarf schema.

Gibt zurück

Die Anzahl der Zeilen wurde erfolgreich hinzugefügt oder aktualisiert in der DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.

Hinweise

Fill Ruft Zeilen aus der Datenquelle mithilfe der SELECT-Anweisung ab, die durch eine zugeordnete SelectCommand Eigenschaft angegeben wird. Das mit der SELECT-Anweisung verknüpfte Verbindungsobjekt muss gültig sein, muss aber nicht geöffnet sein. Wenn die Verbindung vor dem Fill Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung geöffnet ist, bevor Fill sie aufgerufen wird, bleibt sie geöffnet.

Der Fill Vorgang fügt dann die Zeilen zu Zielobjekten DataTable im DataSetObjekt hinzu, wodurch die DataTable Objekte erstellt werden, sofern sie noch nicht vorhanden sind. Beim Erstellen von DataTable Objekten erstellt der Fill Vorgang normalerweise nur Spaltennamenmetadaten. Wenn die MissingSchemaAction Eigenschaft jedoch auf AddWithKey festgelegt ist, werden auch geeignete Primärschlüssel und Einschränkungen erstellt.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden. Weitere Informationen finden Sie unter Definieren von Primärschlüsseln.

Wenn beim IDataAdapter Auffüllen doppelter DataTableSpalten doppelte Spalten auftreten, generiert sie Namen für die nachfolgenden Spalten, wobei das Muster "Columnname1", "columnname2", "columnname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster gesetzt. Wenn dem Ergebnissatz mehrere Resultsets hinzugefügt DataSetwerden, wird jeder Resultset in eine separate Tabelle eingefügt. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Anwendungen sollten beim Verwenden von Spalten- und Tabellennamen Vorsicht verwenden, um sicherzustellen, dass Konflikte mit diesen Benennungsmustern nicht auftreten.

Wenn die SELECT-Anweisung, die zum Auffüllen der DataSet zurückgegebenen Ergebnisse verwendet wird, mehrere Ergebnisse zurückgibt, z. B. eine SQL-Batch-Anweisung, wenn eines der Ergebnisse einen Fehler enthält, werden alle aufeinander folgenden Ergebnisse übersprungen und nicht hinzugefügt DataSet.

Sie können die Fill Methode mehrmals auf demselben DataTableVerwenden. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden sind. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an die DataTable.

Hinweis

Bei der Verarbeitung von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung und FillFillSchema für einen .NET Framework-Datenanbieter Schemainformationen nur für das erste Ergebnis ab.

Gilt für:

Weitere Informationen