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
| Name | Beschreibung |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Fügt Zeilen in einem angegebenen Bereich in einem DataSet angegebenen Bereich hinzu oder aktualisiert sie, um die Zeilen in der Datenquelle mit den Namen und den DataSet Quelltabellennamen, Befehlszeichenfolgen und Befehlsverhalten abzugleichen. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Fügt Zeilen in einem angegebenen Bereich in DataSet einem angegebenen Bereich hinzu oder aktualisiert sie, um mit den Zeilen in der Datenquelle mit den Namen und DataTable den DataSet Zeilen in der Datenquelle übereinzustimmen. |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Fügt Zeilen in einem angegebenen Bereich in einem DataSet angegebenen Bereich hinzu oder aktualisiert sie, um mit den Zeilen in der Datenquelle mit den DataSetDataTableNamen und den IDataReader betreffenden Zeilen in der Datenquelle übereinzustimmen. |
| Fill(DataSet, Int32, Int32, String) |
Fügt Zeilen in einem angegebenen Bereich in DataSet einem angegebenen Bereich hinzu oder aktualisiert sie, um mit den Zeilen in der Datenquelle mit den Namen und DataTable den DataSet Zeilen in der Datenquelle übereinzustimmen. |
| Fill(Int32, Int32, DataTable[]) |
Fügt Zeilen in einem oder DataTable mehreren Objekten hinzu oder aktualisiert sie, um mit denen in der Datenquelle ab dem angegebenen Datensatz übereinzustimmen und bis zur angegebenen maximalen Anzahl von Datensätzen abzurufen. |
| Fill(DataTable) |
Fügt Zeilen in einem angegebenen Bereich in einem DataSet angegebenen Bereich hinzu oder aktualisiert sie, um die Zeilen in der Datenquelle mit dem DataTable Namen abzugleichen. |
| Fill(DataTable, IDataReader) |
Fügt Zeilen in einer DataTable Zeile hinzu, die mit den angegebenen DataTable Und IDataReader Namen in der Datenquelle übereinstimmen sollen, oder aktualisiert sie. |
| Fill(DataSet, String) |
Fügt Zeilen in der DataSet Datenquelle hinzu oder aktualisiert sie, um mit den Zeilen in der Datenquelle mit den DataSet Und DataTable Namen übereinzustimmen. |
| Fill(DataSet) |
Fügt Zeilen in der DataSetDatei hinzu oder aktualisiert sie. |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Fügt Zeilen in einer Zeile DataTable hinzu, die mit den Zeilen in der Datenquelle mit dem angegebenen und dem Angegebenen DataTableübereinstimmen sollen, IDbCommand oder CommandBehavioraktualisiert sie. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
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, mit der begonnen werden soll.
- 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, die zum Abrufen von Zeilen aus der Datenquelle verwendet wird.
- behavior
- CommandBehavior
Einer der CommandBehavior Werte.
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.
Ausnahmen
Die Quelltabelle ist ungültig.
Der startRecord Parameter ist kleiner als 0.
- oder -
Der maxRecords Parameter ist kleiner als 0.
Hinweise
Der maxRecords Wert 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 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 beim DbDataAdapter Auffüllen doppelter DataTableSpalten doppelte Spalten auftreten, generiert sie Namen für die nachfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt. Wenn dem resultset mehrere Resultsets hinzugefügt DataSet werden, wird in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Die Fill Methode unterstützt Szenarien, in denen mehrere DataSet Objekte enthalten DataTable sind, deren Namen nur nach Groß-/Kleinschreibung abweichen. In solchen Situationen führt ein Vergleich zwischen Groß- und Kleinschreibung aus, 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".
Wird Fill aufgerufen und enthält DataSet nur eine DataTable , deren Name nur nach Groß-/Kleinschreibung unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario wird die Groß-/Kleinschreibung nicht beachtet. 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 die 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
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.
Hinweise für Vererber
Diese Überladung der Fill(DataSet) Methode ist geschützt und wurde für die Verwendung durch einen .NET Framework-Datenanbieter entwickelt.
Weitere Informationen
Gilt für:
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
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, mit der begonnen werden soll.
- maxRecords
- Int32
Die maximale Anzahl der abzurufenden Datensätze. Geben Sie 0 an, um alle Datensätze nach dem Startdatensatz abzurufen.
- command
- IDbCommand
Wird IDbCommand ausgeführt, um die DataTable Objekte auszufüllen.
- behavior
- CommandBehavior
Einer der CommandBehavior Werte.
Gibt zurück
Die Anzahl der Zeilen, die in den Datentabellen hinzugefügt oder aktualisiert werden.
Ausnahmen
Dies 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
Der maxRecords Wert 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 die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection der SELECT-Anweisung zugeordnete Objekt muss gültig sein, muss jedoch nicht geöffnet sein. Wenn die IDbConnection Datei 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.
Wenn ein Befehl keine Zeilen zurückgibt, werden der Tabelle keine Tabellen hinzugefügt DataSet, es wird jedoch keine Ausnahme ausgelöst.
Wenn das DbDataAdapter Objekt beim Auffüllen doppelter DataTableSpalten auftritt, generiert es Namen für die nachfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Resultset in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Einfügeabfrage, gefolgt von einer Auswahlabfrage, verarbeiten würden, würde die für die Auswahlabfrage erstellte Tabelle den Namen "Tabelle" haben, da sie die erste erstellte Tabelle ist. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Die Fill Methode unterstützt Szenarien, in denen mehrere DataSet Objekte enthalten DataTable sind, deren Namen nur nach Groß-/Kleinschreibung abweichen. In solchen Situationen führt ein Vergleich zwischen Groß- und Kleinschreibung aus, 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".
Wird Fill aufgerufen und enthält DataSet nur eine DataTable , deren Name nur nach Groß-/Kleinschreibung unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario wird die Groß-/Kleinschreibung nicht beachtet. 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 auftritt, verbleiben zeilen, die vor dem Auftreten des Fehlers in den Datentabellen hinzugefügt wurden. Der Rest des Vorgangs wird abgebrochen.
Wenn die SELECT-Anweisung zum Auffüllen der DataTable Objekte mehrere Ergebnisse zurückgibt, z. B. eine SQL-Anweisung im Batch, beachten Sie Folgendes:
Wenn Mehrere Ergebnisse aus einer SQL-Batch-Anweisung verarbeitet werden,
maxRecordsgilt nur für das erste Ergebnis. Dasselbe gilt für Zeilen mit kapitelierten Ergebnissen (nur .NET Framework-Datenanbieter für OLE DB). Das Ergebnis der obersten Ebene ist durchmaxRecordsbeschränkt, aber alle untergeordneten Zeilen werden hinzugefügt.Wenn eines 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 durch maxRecords. Das gesamte ergebniset, das von der Abfrage generiert wird, wird jedoch weiterhin vom Server zurückgegeben.
Hinweise für Vererber
Achten Sie beim Überschreiben Fill(DataSet) in einer abgeleiteten Klasse darauf, die Methode der Basisklasse Fill(DataSet) aufzurufen.
Weitere Informationen
Gilt für:
Fill(DataSet, String, IDataReader, Int32, Int32)
Fügt Zeilen in einem angegebenen Bereich in einem DataSet angegebenen Bereich hinzu oder aktualisiert sie, um mit den Zeilen in der Datenquelle mit den DataSetDataTableNamen und den IDataReader betreffenden Zeilen in der Datenquelle übereinzustimmen.
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 des IDataReader.
- startRecord
- Int32
Die nullbasierte Datensatznummer, mit der begonnen werden soll.
- 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 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.
Ausnahmen
Hinweise
Der maxRecords Wert 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.
Gilt für:
Fill(DataSet, Int32, Int32, String)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
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, mit der begonnen werden soll.
- 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 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.
Ausnahmen
Dies 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, OleDbDataAdapterum eine DataSet mit 15 Zeilen beginnende Zeile 10 aus der Tabelle " Kategorien " auszufüllen. In diesem Beispiel wird davon ausgegangen, dass Sie ein OleDbDataAdapter und ein 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
Der maxRecords Wert 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 nur für maxRecords das erste Ergebnis.
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection der SELECT-Anweisung zugeordnete Objekt muss gültig sein, muss jedoch nicht geöffnet sein. Wenn die Datei IDbConnection vor dem Fill Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann zu schließen. Wenn die Verbindung geöffnet ist, bevor Fill sie aufgerufen wird, bleibt sie geöffnet.
Wenn ein Befehl keine Zeilen zurückgibt, werden der Tabelle keine Tabellen hinzugefügt DataSet, es wird jedoch keine Ausnahme ausgelöst.
Wenn das DbDataAdapter Objekt beim Auffüllen doppelter DataTableSpalten auftritt, generiert es Namen für die nachfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Resultset in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wird beim Verarbeiten einer Einfügeabfrage gefolgt von einer Auswahlabfrage die für die Auswahlabfrage erstellte Tabelle mit dem Namen "Tabelle" bezeichnet, da sie die erste erstellte Tabelle ist. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Die Fill Methode unterstützt Szenarien, in denen mehrere DataSet Objekte enthalten DataTable sind, deren Namen nur nach Groß-/Kleinschreibung abweichen. In solchen Situationen führt ein Vergleich zwischen Groß- und Kleinschreibung aus, 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".
Wird Fill aufgerufen und enthält DataSet nur eine DataTable , deren Name nur nach Groß-/Kleinschreibung unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario wird die Groß-/Kleinschreibung nicht beachtet. 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 auftritt, verbleiben zeilen, die vor dem Auftreten des Fehlers in den Datentabellen hinzugefügt wurden. Der Rest des Vorgangs wird abgebrochen.
Beachten Sie Folgendes, wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. SQL-Batchanweisungen:
Wenn Mehrere Ergebnisse aus einer SQL-Batch-Anweisung verarbeitet werden,
maxRecordsgilt nur für das erste Ergebnis. Dasselbe gilt für Zeilen mit kapitelierten Ergebnissen (nur .NET Framework-Datenanbieter für OLE DB). Das Ergebnis der obersten Ebene ist begrenzt durchmaxRecords, aber alle untergeordneten Zeilen werden hinzugefügt.Wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht dem DataSet.
Wenn Sie nachfolgende Aufrufe Fill verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit der ursprünglich zum Auffüllen der DataSetSql-Anweisung verwendeten übereinstimmen.
Die Schlüsselspalteninformationen müssen vorhanden sein.
Wenn Primärschlüsselinformationen vorhanden sind, werden alle doppelten Zeilen abgeglichen und nur einmal angezeigt, die DataTable dem Entsprechenden entsprechen DataSet. Primärschlüsselinformationen können entweder über FillSchema, durch Angabe der PrimaryKey Eigenschaft des DataTableSchlüssels oder durch Festlegen der MissingSchemaAction Eigenschaft auf AddWithKey.
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
Bei der Verarbeitung von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema des .NET Framework-Datenanbieters 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 durch maxRecords. Das gesamte von der Abfrage generierte Resultset wird jedoch weiterhin vom Server zurückgegeben.
Hinweise für Vererber
Achten Sie beim Überschreiben Fill(DataSet) in einer abgeleiteten Klasse darauf, die Methode der Basisklasse Fill(DataSet) aufzurufen.
Weitere Informationen
Gilt für:
Fill(Int32, Int32, DataTable[])
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
Fügt Zeilen in einem oder DataTable mehreren Objekten hinzu oder aktualisiert sie, um mit denen in der Datenquelle ab dem angegebenen Datensatz übereinzustimmen und bis zur angegebenen maximalen Anzahl von Datensätzen abzurufen.
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, mit der begonnen werden soll.
- 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 den DataTable Objekten erfolgreich hinzugefügt oder aktualisiert wurden. Dieser Wert enthält keine Zeilen, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Ausnahmen
dataTables ist null oder ein leeres Array.
Hinweise
Der maxRecords Wert 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 aber nicht geöffnet sein. Wenn die Verbindung vor dem Fill Aufruf geschlossen wird, wird sie zum Abrufen von Daten geöffnet 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 der Datenadapter beim Auffüllen doppelter DataTableSpalten auftritt, generiert er 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 eingefügt. Wenn dem Ergebnissatz mehrere Resultsets hinzugefügt DataSetwerden, wird jeder Resultset in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Wenn die SELECT-Anweisung verwendet wird, um die DataSet zurückgegebenen ergebnisse zu füllen, z. B. eine SQL-Batch-Anweisung, wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden 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 FillSchema des .NET Framework-Datenanbieters 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.
Weitere Informationen
Gilt für:
Fill(DataTable)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
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 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.
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 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 beim DbDataAdapter Auffüllen doppelter DataTableSpalten doppelte Spalten auftreten, generiert sie Namen für die nachfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt. Wenn dem resultset mehrere Resultsets hinzugefügt DataSet werden, wird in einer separaten Tabelle platziert.
Die Überladung, die Fill als Parameter verwendet DataTable wird, ruft nur das erste Ergebnis ab. Verwenden Sie eine Überladung, die Fill als Parameter verwendet DataSet wird, um mehrere Ergebnisse zu erhalten.
Die Fill Methode unterstützt Szenarien, in denen mehrere DataSet Objekte enthalten DataTable sind, deren Namen nur nach Groß-/Kleinschreibung abweichen. In solchen Situationen führt ein Vergleich zwischen Groß- und Kleinschreibung aus, 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".
Wird Fill aufgerufen und enthält DataSet nur eine DataTable , deren Name nur nach Groß-/Kleinschreibung unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario wird die Groß-/Kleinschreibung nicht beachtet. 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 die 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
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.
Hinweise für Vererber
Diese Überladung der Fill(DataSet) Methode ist geschützt und wurde für die Verwendung durch einen .NET Framework-Datenanbieter entwickelt.
Weitere Informationen
Gilt für:
Fill(DataTable, IDataReader)
Fügt Zeilen in einer DataTable Zeile hinzu, die mit den angegebenen DataTable Und IDataReader Namen in der Datenquelle übereinstimmen sollen, oder aktualisiert sie.
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
- dataReader
- IDataReader
Der Name des IDataReader.
Gibt zurück
Die Anzahl der Zeilen wurde erfolgreich hinzugefügt oder aktualisiert in der DataTable. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.
Gilt für:
Fill(DataSet, String)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
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 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.
Ausnahmen
Die Quelltabelle ist ungültig.
Beispiele
Im folgenden Beispiel wird die abgeleitete Klasse verwendet, OleDbDataAdapterum eine DataSet Zeile aus der Kategorientabelle auszufüllen. In diesem Beispiel wird davon ausgegangen, dass Sie ein OleDbDataAdapter und ein 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 dem Auswahlbefehl zugeordnete Objekt muss gültig sein, muss jedoch nicht geöffnet sein. Wenn die IDbConnection Datei 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.
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und es wird keine Ausnahme ausgelöst.
Wenn das DbDataAdapter Objekt beim Auffüllen doppelter DataTableSpalten auftritt, generiert es 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 eingefügt.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jeder Resultset in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine Einfügeabfrage, gefolgt von einer Auswahlabfrage, verarbeiten würden, würde die für die Auswahlabfrage erstellte Tabelle den Namen "Tabelle" haben, da sie die erste erstellte Tabelle ist. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Die Fill Methode unterstützt Szenarien, in denen mehrere DataSet Objekte enthalten DataTable sind, deren Namen nur nach Groß-/Kleinschreibung abweichen. In solchen Situationen führt ein Vergleich zwischen Groß- und Kleinschreibung aus, 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".
Wird Fill aufgerufen und enthält DataSet nur eine DataTable , deren Name nur nach Groß-/Kleinschreibung unterschiedlich ist, wird dies DataTable aktualisiert. In diesem Szenario wird die Groß-/Kleinschreibung nicht beachtet. 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 auftritt, verbleiben zeilen, die vor dem Auftreten des Fehlers in den Datentabellen hinzugefügt wurden. Der Rest des Vorgangs wird abgebrochen.
Beachten Sie Folgendes, wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. eine SQL-Anweisung im Batch:
- Wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht dem DataSet.
Wenn Sie nachfolgende Aufrufe Fill verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit der ursprünglich zum Auffüllen der DataSetSql-Anweisung verwendeten übereinstimmen.
Die Schlüsselspalteninformationen müssen vorhanden sein. Wenn Primärschlüsselinformationen vorhanden sind, werden alle doppelten Zeilen abgeglichen DataSetund nur einmal angezeigt, die DataTable dem Entsprechenden entsprechen. Primärschlüsselinformationen können entweder über FillSchema, durch Angabe der PrimaryKey Eigenschaft des DataTableSchlüssels oder durch Festlegen der MissingSchemaAction Eigenschaft auf
AddWithKey.
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
Bei der Verarbeitung von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema des .NET Framework-Datenanbieters 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
Achten Sie beim Überschreiben Fill(DataSet) in einer abgeleiteten Klasse darauf, die Methode der Basisklasse Fill(DataSet) aufzurufen.
Weitere Informationen
Gilt für:
Fill(DataSet)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
Fügt Zeilen in der DataSetDatei hinzu oder aktualisiert sie.
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 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.
Implementiert
Hinweise
Die Fill Methode ruft die Daten aus der Datenquelle mithilfe einer SELECT-Anweisung ab. Das IDbConnection dem Auswahlbefehl zugeordnete Objekt muss gültig sein, muss jedoch nicht geöffnet sein. Wenn die Datei IDbConnection vor dem Fill Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann zu schließen. Wenn die Verbindung geöffnet ist, bevor Fill sie aufgerufen wird, bleibt sie geöffnet.
Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme auftritt, verbleiben zeilen, die vor dem Auftreten des Fehlers in den Datentabellen hinzugefügt wurden. Der Rest des Vorgangs wird abgebrochen.
Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und es wird keine Ausnahme ausgelöst.
Wenn das DbDataAdapter Objekt beim Auffüllen doppelter DataTableSpalten auftritt, generiert es Namen für die nachfolgenden Spalten unter Verwendung des Musters "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt.
Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird das Resultset für jede Zeilenrückgabeabfrage in einer separaten Tabelle platziert. Zusätzliche Resultsets werden durch Anfügen integraler Werte an den angegebenen Tabellennamen benannt (z. B. "Tabelle", "Tabelle1", "Tabelle2" usw.). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wird beim Verarbeiten einer Einfügeabfrage gefolgt von einer Auswahlabfrage die für die Auswahlabfrage erstellte Tabelle mit dem Namen "Tabelle" bezeichnet, da sie die erste erstellte Tabelle ist. Wenn Ihre App Spalten- und Tabellennamen verwendet, stellen Sie sicher, dass keine Konflikte mit diesen Benennungsmustern auftreten.
Wenn die SELECT-Anweisung zum Auffüllen mehrerer DataSet Ergebnisse verwendet wird, z. B. SQL-Anweisungen im Batch, wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und nicht hinzugefügt DataSet.
Wenn Sie nachfolgende Aufrufe Fill verwenden, um den Inhalt der DataSetDatei zu aktualisieren, müssen zwei Bedingungen erfüllt sein:
Die SQL-Anweisung sollte mit der ursprünglich zum Auffüllen der DataSetSql-Anweisung verwendeten übereinstimmen.
Die Schlüsselspalteninformationen müssen vorhanden sein.
Wenn Primärschlüsselinformationen vorhanden sind, werden alle doppelten Zeilen abgeglichen DataSetund nur einmal angezeigt, die DataTable dem Entsprechenden entsprechen. Primärschlüsselinformationen können entweder über FillSchema, durch Angabe der PrimaryKey Eigenschaft des DataTableSchlüssels oder durch Festlegen der MissingSchemaAction Eigenschaft auf AddWithKey.
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
Bei der Verarbeitung von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema des .NET Framework-Datenanbieters 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.
Weitere Informationen
Gilt für:
Fill(DataTable, IDbCommand, CommandBehavior)
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
- Quelle:
- DbDataAdapter.cs
Fügt Zeilen in einer Zeile DataTable hinzu, die mit den Zeilen in der Datenquelle mit dem angegebenen und dem Angegebenen DataTableübereinstimmen sollen, IDbCommand oder CommandBehavioraktualisiert sie.
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
- command
- IDbCommand
Die SQL SELECT-Anweisung, die zum Abrufen von Zeilen aus der Datenquelle verwendet wird.
- behavior
- CommandBehavior
Einer der CommandBehavior Werte.
Gibt zurück
Die Anzahl der Zeilen wurde erfolgreich hinzugefügt oder aktualisiert in der DataTable. 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 aber nicht geöffnet sein. Wenn die Verbindung vor dem Fill Aufruf geschlossen wird, wird sie geöffnet, um Daten abzurufen und dann zu schließen. Wenn die Verbindung geöffnet ist, bevor Fill sie aufgerufen wird, bleibt sie geöffnet.
Der Fill Vorgang fügt dann die Zeilen zum angegebenen Zielobjekt DataTable im DataSetObjekt hinzu, wodurch das DataTable Objekt erstellt wird, wenn es noch nicht vorhanden ist. Beim Erstellen eines DataTable Objekts 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 das DbDataAdapter Objekt beim Auffüllen doppelter DataTableSpalten auftritt, generiert es Namen für die nachfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem DataSet Muster "Spalte1", "Spalte2" usw. in das Muster eingefügt.
Die Überladung, die Fill als Parameter verwendet DataTable wird, ruft nur das erste Ergebnis ab. Verwenden Sie eine Überladung, die Fill als Parameter verwendet DataSet wird, um mehrere Ergebnisse zu erhalten.
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.
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
Bei der Verarbeitung von SQL-Batchanweisungen, die mehrere Ergebnisse zurückgeben, ruft die Implementierung FillSchema des .NET Framework-Datenanbieters 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 Fill(DataSet) Methode ist geschützt und wurde für die Verwendung durch einen .NET Framework-Datenanbieter entwickelt.