Freigeben über


DbDataAdapter.Fill-Methode (DataTable)

Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den Namen der DataTable verwenden.

Overloads Public Function Fill( _
   ByVal dataTable As DataTable _) As Integer
[C#]
public int Fill(DataTabledataTable);
[C++]
public: int Fill(DataTable* dataTable);
[JScript]
public function Fill(
   dataTable : DataTable) : int;

Parameter

  • dataTable
    Eine DataTable, die mit Datensätzen und bei Bedarf mit einem Schema gefüllt werden soll.

Rückgabewert

Die Anzahl der Zeilen, die der DataTable erfolgreich hinzugefügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.

Hinweise

Die Fill-Methode ruft Zeilen aus der Datenquelle mit Hilfe der SELECT-Anweisung ab, die durch eine zugeordnete SelectCommand-Eigenschaft angegeben ist. Das der SELECT-Anweisung zugeordnete Verbindungsobjekt muss gültig, jedoch nicht geöffnet sein. Wenn die Verbindung vor dem Aufruf von Fill geschlossen ist, wird sie zum Abrufen der Daten geöffnet und anschließend geschlossen. Wenn die Verbindung vor dem Aufruf von Fill geöffnet ist, bleibt sie weiterhin offen.

Die Zeilen werden anschließend mit Hilfe der Fill-Operation dem angegebenen Ziel- DataTable-Objekt im DataSet hinzugefügt. Wenn das DataTable-Objekt nicht bereits vorhanden ist, wird es erstellt. Beim Erstellen eines DataTable-Objekts werden durch die Fill-Operation i. d. R. nur Metadaten für Spaltennamen erstellt. Wenn die MissingSchemaAction-Eigenschaft auf AddWithKey festgelegt ist, werden jedoch auch entsprechende Primärschlüssel und Einschränkungen erstellt.

Wenn das DbDataAdapter-Objekt beim Füllen einer DataTable auf mehrfach vorhandene Spalten trifft, erstellt das Objekt für die jeweils folgenden Spalten Namen nach dem Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden diese im DataSet entsprechend dem Muster "Spalte1", "Spalte2" usw. eingefügt.

Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jedes Resultset in einer separaten Tabelle platziert. Zusätzliche Resultsets werden benannt, indem dem angegebenen Tabellennamen ganzzahlige Werte angefügt werden (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Für Anfragen, die keine Zeilen zurückgeben, werden keine Tabellen erstellt. Daher wird bei der Verarbeitung einer INSERT-Abfrage und einer anschließenden SELECT-Abfrage die für die SELECT-Abfrage erstellte Tabelle als "Tabelle" benannt, da es sich dabei um die erste erstellte Tabelle handelt. Beim Verwenden von Spalten- und Tabellennamen in Anwendungen muss darauf geachtet werden, dass keine Konflikte mit diesen Benennungsmustern auftreten.

Hinweis   Beim Behandeln von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung von FillSchema für den .NET Framework-Datenprovider für OLE DB nur Schemainformationen für das erste Ergebnis ab. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill, wobei MissingSchemaAction auf AddWithKey festgelegt ist.

Sie können die Fill-Methode mehrmals für dieselbe DataTable verwenden. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit bereits vorhandenen entsprechenden Zeilen zusammengeführt. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an die DataTable angefügt.

Wenn SelectCommand die Ergebnisse von OUTER JOIN zurückgibt, legt DataAdapter keinen PrimaryKey-Wert für die resultierende DataTable fest. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen richtig aufgelöst werden. Weitere Informationen finden Sie unter Definieren eines Primärschlüssels für Tabellen.

Anforderungen

Plattformen: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003-Familie, .NET Compact Framework - Windows CE .NET

Siehe auch

DbDataAdapter-Klasse | DbDataAdapter-Member | System.Data.Common-Namespace | DbDataAdapter.Fill-Überladungsliste | FillSchema