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.
Anschließend werden die Zeilen mit Hilfe der Fill-Operation Ziel- DataTable-Objekten im DataSet hinzugefügt, wobei die DataTable-Objekte erstellt werden, wenn sie nicht bereits vorhanden sind. Beim Erstellen von DataTable-Objekten werden von der 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 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.
Wenn der Datenadapter beim Füllen einer DataTable doppelte Spalten findet, generiert er 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 dem DataSet mehrere Resultsets hinzugefügt werden, 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.). Beim Verwenden von Spalten- und Tabellennamen in Anwendungen muss darauf geachtet werden, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Wenn die zum Füllen des DataSet verwendete SELECT-Anweisung mehrere Ergebnisse zurückgibt, z. B. bei SQL-Batchanweisungen, und eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und dem DataSet nicht hinzugefügt.
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.
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.