DbDataAdapter.Fill Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Aktualisiert Zeilen in einem angegebenen Bereich im DataSet oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den Namen des DataSet, den Namen der Quelltabelle, die Befehlszeichenfolge und das Befehlsverhalten verwenden. |
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Aktualisiert Zeilen in einem angegebenen Bereich des DataSet oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den Namen des DataSet und den Namen der DataTable verwenden. |
Fill(DataSet, String, IDataReader, Int32, Int32) |
Aktualisiert Zeilen in einem angegebenen Bereich im DataSet oder fügt Zeilen hinzu, um anhand der Namen DataSet, DataTable und IDataReader Übereinstimmung mit den Zeilen in der Datenquelle zu erzielen. |
Fill(DataSet, Int32, Int32, String) |
Aktualisiert Zeilen in einem angegebenen Bereich des DataSet oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den Namen des DataSet und den Namen der DataTable verwenden. |
Fill(Int32, Int32, DataTable[]) |
Fügt Zeilen in einem oder mehreren DataTable Objekten hinzu, um mit diesen in der Datenquelle ab dem angegebenen Datensatz zu übereinstimmen und bis zur angegebenen maximalen Anzahl von Datensätzen abzurufen oder zu aktualisieren. |
Fill(DataTable) |
Aktualisiert Zeilen in einem angegebenen Bereich des DataSet oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den DataTable-Namen verwendet. |
Fill(DataTable, IDataReader) |
Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um anhand der angegebenen Namen DataTable und IDataReader Übereinstimmung mit den Zeilen in der Datenquelle zu erzielen. |
Fill(DataSet, String) |
Aktualisiert Zeilen im DataSet oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, die den Namen des DataSet und den Namen der DataTable verwenden. |
Fill(DataSet) |
Fügt Zeilen in DataSet hinzu oder aktualisiert diese. |
Fill(DataTable, IDbCommand, CommandBehavior) |
Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, wobei die angegebenen Werte für DataTable, IDbCommand und CommandBehavior verwendet werden. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
protected:
virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer
Parameter
- startRecord
- Int32
Die nullbasierte Datensatznummer, bei der begonnen wird.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
- srcTable
- String
Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.
- command
- IDbCommand
Die SQL-SELECT-Anweisung, mit der Zeilen aus der Datenquelle abgerufen werden.
- behavior
- CommandBehavior
Einer der CommandBehavior-Werte.
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
Die Quelltabelle ist ungültig.
Der startRecord
-Parameter ist kleiner als 0.
- oder -
Der maxRecords
-Parameter ist kleiner als 0.
Hinweise
Ein maxRecords
Wert von 0 ruft alle Datensätze ab, die nach dem Startdatensatz gefunden wurden. Wenn maxRecords
die Anzahl der verbleibenden Zeilen größer ist, werden nur die verbleibenden Zeilen zurückgegeben und kein Fehler ausgegeben.
Die Fill Methode 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 jedoch nicht geöffnet werden. Wenn die Verbindung vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Der Fill Vorgang fügt dann die Zeilen zu Zielobjekten DataTable in den DataSet, das Erstellen der DataTable Objekte, wenn sie noch nicht vorhanden sind, hinzu. Beim Erstellen von Objekten erstellt DataTable der Fill Vorgang normalerweise nur Spaltennamenmetadaten. Wenn die MissingSchemaAction Eigenschaft jedoch auf AddWithKey
, geeignete Primärschlüssel und Einschränkungen festgelegt ist, werden auch erstellt.
Wenn die DbDataAdapter doppelten Spalten beim Auffüllen einer DataTableSpalte auftreten, generiert sie Namen für die nachfolgenden Spalten, mit dem Muster "columnname1", "columnname2", "columnname3" usw. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw. Wenn mehrere Ergebnissätze dem DataSet einzelnen Ergebnissatz hinzugefügt werden, wird in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Die Fill Methode unterstützt Szenarien, in denen mehrere Objekte enthaltenDataTable, deren DataSet Namen nur nach Fall unterscheiden. In solchen Situationen wird ein Groß-/Kleinschreibungsvergleich ausgeführt, Fill um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorhanden ist. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".
Wenn Fill sie aufgerufen wird und nur DataTable eine enthält, deren DataSet Name nur nach Fall unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario ist der Vergleich Groß-/Kleinschreibung. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the 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 den DataTable.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung und Fill FillSchema für einen .NET Framework Datenanbieter Schemainformationen nur für das erste Ergebnis ab.
Hinweise für Vererber
Diese Überladung der Methode ist geschützt und wird für die Fill(DataSet) Verwendung durch einen .NET Framework Datenanbieter entwickelt.
Siehe auch
Gilt für
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
protected:
virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer
Parameter
- startRecord
- Int32
Die nullbasierte Datensatznummer, bei der begonnen wird.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
- command
- IDbCommand
Der IDbCommand, der ausgeführt wird, um die DataTable-Objekte zu füllen.
- behavior
- CommandBehavior
Einer der CommandBehavior-Werte.
Gibt zurück
Die Anzahl der Zeilen, die in den Datentabellen hinzugefügt bzw. darin aktualisiert wurden.
Ausnahmen
DataSet ist ungültig.
Die Verbindung konnte nicht gefunden werden.
Der startRecord
-Parameter ist kleiner als 0.
- oder -
Der maxRecords
-Parameter ist kleiner als 0.
Hinweise
Ein maxRecords
Wert von 0 ruft alle Datensätze ab, die nach dem Startdatensatz gefunden wurden. Wenn maxRecords
die Anzahl der verbleibenden Zeilen größer ist, werden nur die verbleibenden Zeilen zurückgegeben und kein Fehler ausgegeben.
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, muss jedoch nicht geöffnet sein. Wenn dies IDbConnection vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, aber keine Ausnahme wird ausgelöst.
Wenn das DbDataAdapter Objekt doppelte Spalten beim Auffüllen einer DataTableSpalte auftritt, generiert es Namen für die nachfolgenden Spalten, indem das Muster "columnname1", "columnname2", "columnname3" und so weiter verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Ergebnissatz in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Einfügenabfrage verarbeiten möchten, gefolgt von einer Auswahlabfrage, würde die für die Auswahlabfrage erstellte Tabelle "Tabelle" genannt werden, da sie die erste Tabelle erstellt hat. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Die Fill Methode unterstützt Szenarien, in denen mehrere Objekte enthaltenDataTable, deren DataSet Namen nur nach Fall unterscheiden. In solchen Situationen wird ein Groß-/Kleinschreibungsvergleich ausgeführt, Fill um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorhanden ist. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".
Wenn Fill sie aufgerufen wird und nur DataTable eine enthält, deren DataSet Name nur nach Fall unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario ist der Vergleich Groß-/Kleinschreibung. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.
Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme aufgetreten ist, bleiben Zeilen vor dem Auftreten des Fehlers in den Datentabellen enthalten. Der Rest des Vorgangs wird abgebrochen.
Wenn die SELECT-Anweisung zum Auffüllen der DataTable Objekte mehrere Ergebnisse zurückgibt, z. B. eine Batch-SQL-Anweisung, beachten Sie folgendes:
Bei der Verarbeitung mehrerer Ergebnisse aus einer Batch-SQL-Anweisung
maxRecords
gilt nur für das erste Ergebnis. Das gleiche gilt für Zeilen, die kapitelierte Ergebnisse enthalten (nur .NET Framework Datenanbieter für OLE DB). Das Ergebnis auf oberster Ebene ist durchmaxRecords
eingeschränkt, aber alle untergeordneten Zeilen werden hinzugefügt.Wenn eine der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen.
Hinweis
Dies DataSet
enthält nicht mehr als die Anzahl von Datensätzen, die von maxRecords
. Das gesamte vom Abfrage generierte Resultset wird jedoch weiterhin vom Server zurückgegeben.
Hinweise für Vererber
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt werden Fill(DataSet) , müssen Sie die Basisklasse-Methode Fill(DataSet) aufrufen.
Siehe auch
Gilt für
Fill(DataSet, String, IDataReader, Int32, Int32)
Aktualisiert Zeilen in einem angegebenen Bereich im DataSet oder fügt Zeilen hinzu, um anhand der Namen DataSet, DataTable und IDataReader Übereinstimmung mit den Zeilen in der Datenquelle zu erzielen.
protected:
virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer
Parameter
- dataReader
- IDataReader
Der Name von IDataReader.
- startRecord
- Int32
Die nullbasierte Datensatznummer, bei der begonnen wird.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
Hinweise
Ein maxRecords
Wert von 0 ruft alle Datensätze ab, die nach dem Startdatensatz gefunden wurden. Wenn maxRecords
die Anzahl der verbleibenden Zeilen größer ist, werden nur die verbleibenden Zeilen zurückgegeben und kein Fehler ausgegeben.
Gilt für
Fill(DataSet, Int32, Int32, String)
public:
int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer
Parameter
- startRecord
- Int32
Die nullbasierte Datensatznummer, bei der begonnen wird.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
- srcTable
- String
Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
DataSet ist ungültig.
Die Verbindung konnte nicht gefunden werden.
Der startRecord
-Parameter ist kleiner als 0.
- oder -
Der maxRecords
-Parameter ist kleiner als 0.
Beispiele
Im folgenden Beispiel wird die abgeleitete Klasse verwendet, um eine DataSet Mit 15 Zeilen zu füllen, OleDbDataAdapterbeginnend mit Zeile 10, aus der Tabelle "Kategorien". In diesem Beispiel wird davon ausgegangen, dass Sie eine und eine OleDbDataAdapter DataSet.
public void GetRecords()
{
// ...
// create dataSet and adapter
// ...
adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
' ...
' create dataSet and adapter
' ...
adapter.Fill(dataSet, 9, 15, "Categories")
End Sub
Hinweise
Ein maxRecords
Wert von 0 ruft alle Datensätze ab, die nach dem Startdatensatz gefunden wurden. Wenn maxRecords
die Anzahl der verbleibenden Zeilen größer ist, werden nur die verbleibenden Zeilen zurückgegeben, und es wird kein Fehler ausgegeben.
Wenn der entsprechende Auswahlbefehl eine Anweisung ist, die mehrere Ergebnisse zurückgibt, Fill gilt maxRecords
nur für das erste Ergebnis.
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, muss jedoch nicht geöffnet sein. Wenn dies IDbConnection vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, aber keine Ausnahme wird ausgelöst.
Wenn das DbDataAdapter Objekt doppelte Spalten beim Auffüllen einer DataTableSpalte auftritt, generiert es Namen für die nachfolgenden Spalten, indem das Muster "columnname1", "columnname2", "columnname3" und so weiter verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Ergebnissatz in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Insert-Abfrage verarbeiten, gefolgt von einer Auswahlabfrage, wird die für die Auswahlabfrage erstellte Tabelle "Tabelle" genannt, da sie die erste Tabelle erstellt hat. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Die Fill Methode unterstützt Szenarien, in denen mehrere Objekte enthaltenDataTable, deren DataSet Namen nur nach Fall unterscheiden. In solchen Situationen wird ein Groß-/Kleinschreibungsvergleich ausgeführt, Fill um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorhanden ist. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".
Wenn Fill sie aufgerufen wird und nur DataTable eine enthält, deren DataSet Name nur nach Fall unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario ist der Vergleich Groß-/Kleinschreibung. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.
Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme aufgetreten ist, bleiben Zeilen vor dem Auftreten des Fehlers in den Datentabellen enthalten. Der Rest des Vorgangs wird abgebrochen.
Wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. Batch-SQL-Anweisungen, beachten Sie folgendes:
Bei der Verarbeitung mehrerer Ergebnisse aus einer Batch-SQL-Anweisung
maxRecords
gilt nur für das erste Ergebnis. Das gleiche gilt für Zeilen, die kapitelierte Ergebnisse enthalten (nur .NET Framework Datenanbieter für OLE DB). Das Ergebnis der obersten Ebene ist durchmaxRecords
eingeschränkt, aber alle untergeordneten Zeilen werden hinzugefügt.Wenn eine der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht zur DataSet.
Wenn Sie nachfolgende Fill Aufrufe verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit dem ursprünglich verwendeten übereinstimmen, um die DataSetSQL aufzufüllen.
Die Schlüsselspalteninformationen müssen vorhanden sein.
Wenn Primärschlüsselinformationen vorhanden sind, werden doppelte Zeilen abgeglichen und werden nur einmal in den DataTable entsprechenden DataSetZeilen angezeigt. Primärschlüsselinformationen können entweder durch FillSchemaFestlegen der PrimaryKey Eigenschaft des Objekts oder durch Festlegen der DataTableMissingSchemaAction Eigenschaft auf AddWithKey
festgelegt werden.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema für die .NET Framework Datenanbieter für OLE DB Schemainformationen nur für das erste Ergebnis ab. Verwenden Sie Fill zum Abrufen von Schemainformationen für mehrere Ergebnisse den MissingSchemaAction Satz auf AddWithKey
.
Hinweis
Dies DataSet
enthält nicht mehr als die Anzahl von Datensätzen, die von maxRecords
. Der gesamte vom Abfrage generierte Ergebnissatz wird jedoch weiterhin vom Server zurückgegeben.
Hinweise für Vererber
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt werden Fill(DataSet) , müssen Sie die Basisklasse-Methode Fill(DataSet) aufrufen.
Siehe auch
Gilt für
Fill(Int32, Int32, DataTable[])
Fügt Zeilen in einem oder mehreren DataTable Objekten hinzu, um mit diesen in der Datenquelle ab dem angegebenen Datensatz zu übereinstimmen und bis zur angegebenen maximalen Anzahl von Datensätzen abzurufen oder zu aktualisieren.
public:
int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill (int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer
Parameter
- startRecord
- Int32
Die nullbasierte Datensatznummer, bei der begonnen wird.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
Gibt zurück
Die Anzahl der Zeilen, die erfolgreich in den DataTable Objekten hinzugefügt oder aktualisiert wurden. Dieser Wert schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
dataTables
ist null
oder eine leeres Array.
Hinweise
Ein maxRecords
Wert von 0 ruft alle Datensätze ab, die nach dem Startdatensatz gefunden wurden. Wenn maxRecords
die Anzahl der verbleibenden Zeilen größer ist, werden nur die verbleibenden Zeilen zurückgegeben, und es wird kein Fehler ausgegeben.
Die Fill Methode 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 jedoch nicht geöffnet werden. Wenn die Verbindung vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann wird sie geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Der Fill Vorgang fügt dann die Zeilen zu Zielobjekten DataTable in den DataSet, das Erstellen der DataTable Objekte, wenn sie noch nicht vorhanden sind, hinzu. Beim Erstellen von Objekten erstellt DataTable der Fill Vorgang normalerweise nur Spaltennamenmetadaten. Wenn die MissingSchemaAction Eigenschaft jedoch auf AddWithKey
, geeignete Primärschlüssel und Einschränkungen festgelegt ist, werden auch 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 der Datenadapter doppelte Spalten beim Auffüllen einer DataTableSpalte auftritt, generiert er Namen für die nachfolgenden Spalten, indem das Muster "columnname1", "columnname2", "columnname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw. Wenn mehrere Ergebnissätze dem DataSetErgebnissatz hinzugefügt werden, wird jeder Ergebnissatz in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. eine Batch-SQL-Anweisung, wenn eine der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht zur 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 den DataTable.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema für die .NET Framework Datenanbieter für OLE DB Schemainformationen nur für das erste Ergebnis ab. Verwenden Sie Fill zum Abrufen von Schemainformationen für mehrere Ergebnisse den MissingSchemaAction Satz auf AddWithKey
.
Siehe auch
Gilt für
Fill(DataTable)
public:
int Fill(System::Data::DataTable ^ dataTable);
public int Fill (System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer
Parameter
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
Die Quelltabelle ist ungültig.
Hinweise
Die Fill Methode 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 jedoch nicht geöffnet werden. Wenn die Verbindung vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Der Fill Vorgang fügt dann die Zeilen zu Zielobjekten DataTable in den DataSet, das Erstellen der DataTable Objekte, wenn sie noch nicht vorhanden sind, hinzu. Beim Erstellen von Objekten erstellt DataTable der Fill Vorgang normalerweise nur Spaltennamenmetadaten. Wenn die MissingSchemaAction Eigenschaft jedoch auf AddWithKey
, geeignete Primärschlüssel und Einschränkungen festgelegt ist, werden auch erstellt.
Wenn die DbDataAdapter doppelten Spalten beim Auffüllen einer DataTableSpalte auftreten, generiert sie Namen für die nachfolgenden Spalten, mit dem Muster "columnname1", "columnname2", "columnname3" usw. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw. Wenn mehrere Ergebnissätze dem DataSet einzelnen Ergebnissatz hinzugefügt werden, wird in einer separaten Tabelle platziert.
Die Überladung Fill dieser DataTable
Einstellung als Parameter erhält nur das erste Ergebnis. Verwenden Sie eine Überladung Fill , die als Parameter verwendet DataSet
wird, um mehrere Ergebnisse abzurufen.
Die Fill Methode unterstützt Szenarien, in denen mehrere Objekte enthaltenDataTable, deren DataSet Namen nur nach Fall unterscheiden. In solchen Situationen wird ein Groß-/Kleinschreibungsvergleich ausgeführt, Fill um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorhanden ist. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".
Wenn Fill sie aufgerufen wird und nur DataTable eine enthält, deren DataSet Name nur nach Fall unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario ist der Vergleich Groß-/Kleinschreibung. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the 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 den DataTable.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung und Fill FillSchema für einen .NET Framework Datenanbieter Schemainformationen nur für das erste Ergebnis ab.
Hinweise für Vererber
Diese Überladung der Methode ist geschützt und wird für die Fill(DataSet) Verwendung durch einen .NET Framework Datenanbieter entwickelt.
Siehe auch
Gilt für
Fill(DataTable, IDataReader)
Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um anhand der angegebenen Namen DataTable und IDataReader Übereinstimmung mit den Zeilen in der Datenquelle zu erzielen.
protected:
virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer
Parameter
- dataTable
- DataTable
Ein DataTable, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.
- dataReader
- IDataReader
Der Name von IDataReader.
Gibt zurück
Die Anzahl der Zeilen, die dem DataTable erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Gilt für
Fill(DataSet, String)
public:
int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer
Parameter
- srcTable
- String
Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
Die Quelltabelle ist ungültig.
Beispiele
Im folgenden Beispiel wird die abgeleitete Klasse verwendet, OleDbDataAdapterum eine DataSet Zeile aus der Kategorientabelle zu füllen. In diesem Beispiel wird davon ausgegangen, dass Sie eine und eine OleDbDataAdapter DataSet.
public void GetRecords()
{
// ...
// create dataSet and adapter
// ...
adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
' ...
' create dataSet and adapter
' ...
adapter.Fill(dataSet, "Categories")
End Sub
Hinweise
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection objekt, das dem Auswahlbefehl zugeordnet ist, muss gültig sein, muss aber nicht geöffnet sein. Wenn dies IDbConnection vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und keine Ausnahme wird ausgelöst.
Wenn die DbDataAdapter Objekt trifft doppelte Spalten beim Auffüllen einer DataTable, generiert er Namen für die nachfolgenden Spalten, die mit dem Muster "columnname1", "columnname2", "Spaltenname3" usw. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Ergebnissatz in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Einfügenabfrage verarbeiten möchten, gefolgt von einer Auswahlabfrage, würde die für die Auswahlabfrage erstellte Tabelle "Tabelle" genannt werden, da sie die erste Tabelle erstellt hat. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Die Fill Methode unterstützt Szenarien, in denen mehrere Objekte enthaltenDataTable, deren DataSet Namen nur nach Fall unterscheiden. In solchen Situationen wird ein Groß-/Kleinschreibungsvergleich ausgeführt, Fill um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorhanden ist. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".
Wenn Fill sie aufgerufen wird und nur DataTable eine enthält, deren DataSet Name nur nach Fall unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario ist der Vergleich Groß-/Kleinschreibung. Der folgende C#-Code veranschaulicht dieses Verhalten.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.
Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme aufgetreten ist, bleiben Zeilen vor dem Auftreten des Fehlers in den Datentabellen enthalten. Der Rest des Vorgangs wird abgebrochen.
Wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. eine Batch-SQL-Anweisung, beachten Sie folgendes:
- Wenn eine der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht zur DataSet.
Wenn Sie nachfolgende Fill Aufrufe verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit dem ursprünglich verwendeten übereinstimmen, um die DataSetSQL aufzufüllen.
Die Schlüsselspalteninformationen müssen vorhanden sein. Wenn Primärschlüsselinformationen vorhanden sind, werden doppelte Zeilen abgeglichen und werden nur einmal in dem angezeigt, der dem DataTable entspricht DataSet. Primärschlüsselinformationen können entweder durch FillSchemaFestlegen der PrimaryKey Eigenschaft des Objekts oder durch Festlegen der DataTableMissingSchemaAction Eigenschaft auf
AddWithKey
festgelegt werden.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema für die .NET Framework Datenanbieter für OLE DB Schemainformationen nur für das erste Ergebnis ab. Verwenden Sie Fill zum Abrufen von Schemainformationen für mehrere Ergebnisse den MissingSchemaAction Satz auf AddWithKey
.
Hinweise für Vererber
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt werden Fill(DataSet) , müssen Sie die Basisklasse-Methode Fill(DataSet) aufrufen.
Siehe auch
Gilt für
Fill(DataSet)
Fügt Zeilen in DataSet hinzu oder aktualisiert diese.
public:
override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer
Parameter
Gibt zurück
Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Implementiert
Hinweise
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection objekt, das dem Auswahlbefehl zugeordnet ist, muss gültig sein, muss aber nicht geöffnet sein. Wenn dies IDbConnection vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme aufgetreten ist, bleiben Zeilen vor dem Auftreten des Fehlers in den Datentabellen enthalten. Der Rest des Vorgangs wird abgebrochen.
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und keine Ausnahme wird ausgelöst.
Wenn das DbDataAdapter Objekt doppelte Spalten beim Auffüllen einer DataTableSpalte auftritt, generiert er Namen für die nachfolgenden Spalten mithilfe des Musters "columnname1", "columnname2", "columnname3" und so weiter. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird der Ergebnissatz für jede Zeilenrückgabeabfrage in einer separaten Tabelle platziert. Zusätzliche Ergebnissätze werden durch Anfügen von integralen Werten an den angegebenen Tabellennamen (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.) benannt. Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Einfügenabfrage verarbeiten, gefolgt von einer Auswahlabfrage, wird die für die Auswahlabfrage erstellte Tabelle als "Tabelle" bezeichnet, da sie die erste Tabelle erstellt hat. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass es keine Konflikte mit diesen Benennungsmustern gibt.
Wenn die SELECT-Anweisung verwendet wird, um mehrere DataSet Ergebnisse aufzufüllen, z. B. Batch-SQL-Anweisungen, wenn eine der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und werden nicht dem DataSetHinzugefügt.
Wenn Sie nachfolgende Fill Aufrufe verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit dem ursprünglich verwendeten übereinstimmen, um die DataSetSQL aufzufüllen.
Die Schlüsselspalteninformationen müssen vorhanden sein.
Wenn Primärschlüsselinformationen vorhanden sind, werden doppelte Zeilen abgeglichen und werden nur einmal in dem angezeigt, der dem DataTable entspricht DataSet. Primärschlüsselinformationen können entweder durch FillSchemaFestlegen der PrimaryKey Eigenschaft des Objekts oder durch Festlegen der DataTableMissingSchemaAction Eigenschaft auf AddWithKey
festgelegt werden.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema für die .NET Framework Datenanbieter für OLE DB Schemainformationen nur für das erste Ergebnis ab. Verwenden Sie Fill zum Abrufen von Schemainformationen für mehrere Ergebnisse den MissingSchemaAction Satz auf AddWithKey
.
Siehe auch
Gilt für
Fill(DataTable, IDbCommand, CommandBehavior)
Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen, wobei die angegebenen Werte für DataTable, IDbCommand und CommandBehavior verwendet werden.
protected:
virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer
Parameter
- dataTable
- DataTable
Ein DataTable, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.
- command
- IDbCommand
Die SQL-SELECT-Anweisung, mit der Zeilen aus der Datenquelle abgerufen werden.
- behavior
- CommandBehavior
Einer der CommandBehavior-Werte.
Gibt zurück
Die Anzahl der Zeilen, die dem DataTable erfolgreich hinzufü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 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 jedoch nicht geöffnet werden. Wenn die Verbindung vor Fill dem Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann geschlossen. Wenn die Verbindung vor dem Aufruf geöffnet ist, bleibt sie geöffnet Fill .
Der Fill Vorgang fügt dann die Zeilen zum angegebenen Zielobjekt DataTable im DataSet, erstellen Sie das DataTable Objekt, wenn sie noch nicht vorhanden ist. Beim Erstellen eines DataTable Objekts erstellt der Fill Vorgang normalerweise nur Spaltennamenmetadaten. Wenn die MissingSchemaAction Eigenschaft jedoch auf AddWithKey
, geeignete Primärschlüssel und Einschränkungen festgelegt ist, werden auch erstellt.
Wenn das DbDataAdapter Objekt doppelte Spalten beim Auffüllen einer DataTableSpalte auftritt, generiert es Namen für die nachfolgenden Spalten, indem das Muster "columnname1", "columnname2", "columnname3" und so weiter verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.
Die Überladung Fill dieser DataTable
Einstellung als Parameter erhält nur das erste Ergebnis. Verwenden Sie eine Überladung Fill , die als Parameter verwendet DataSet
wird, um mehrere Ergebnisse abzurufen.
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 den DataTable.
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.
Hinweis
Beim Behandeln von Batch- SQL Anweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema für die .NET Framework Datenanbieter für OLE DB Schemainformationen nur für das erste Ergebnis ab. Verwenden Sie Fill zum Abrufen von Schemainformationen für mehrere Ergebnisse den MissingSchemaAction Satz auf AddWithKey
.
Hinweise für Vererber
Diese Überladung der Methode ist geschützt und wird für die Fill(DataSet) Verwendung durch einen .NET Framework Datenanbieter entwickelt.