DbDataAdapter.Fill Methode

Definition

Füllt ein DataSet oder eine DataTable.Fills a DataSet or a DataTable.

Ü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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and source table names, command string, and command behavior.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet, DataTable, and IDataReader names.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

Fill(Int32, Int32, DataTable[])

Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen. Dabei wird mit dem angegebenen Datensatz begonnen, und es werden bis zur angegebenen Anzahl an Datensätzen abgerufen.Adds or refreshes rows in a DataTable to match those in the data source starting at the specified record and retrieving up to the specified maximum number of records.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataTable name.

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.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable and IDataReader names.

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.Adds or refreshes rows in the DataSet to match those in the data source using the DataSet and DataTable names.

Fill(DataSet)

Fügt Zeilen in DataSet hinzu oder aktualisiert diese.Adds or refreshes rows in the DataSet.

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.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable, IDbCommand and CommandBehavior.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and source table names, command string, and command behavior.

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

Parameter

dataSet
DataSet

Ein DataSet, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32

Die nullbasierte Datensatznummer, bei der begonnen wird.The zero-based record number to start with.

maxRecords
Int32

Die maximale Anzahl der abzurufenden Datensätze.The maximum number of records to retrieve.

srcTable
String

Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.The name of the source table to use for table mapping.

command
IDbCommand

Die SQL-SELECT-Anweisung, mit der Zeilen aus der Datenquelle abgerufen werden.The SQL SELECT statement used to retrieve rows from the data source.

behavior
CommandBehavior

Einer der CommandBehavior-Werte.One of the CommandBehavior values.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Ausnahmen

Die Quelltabelle ist ungültig.The source table is invalid.

Der startRecord-Parameter ist kleiner als 0.The startRecord parameter is less than 0.

- oder --or- Der maxRecords-Parameter ist kleiner als 0.The maxRecords parameter is less than 0.

Hinweise

Die Fill -Methode ruft Zeilen aus der Datenquelle mithilfe der SELECT-Anweisung ab, die SelectCommand von einer zugeordneten Eigenschaft angegeben wird.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungs Objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, Fill bevor aufgerufen wird, wird Sie geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Der Fill -Vorgang fügt dann die Zeilen zu DataTable den Ziel Objekten DataSetin hinzu und DataTable erstellt die Objekte, wenn Sie nicht bereits vorhanden sind.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Beim Erstellen DataTable von Objekten erstellt Fill der Vorgang normalerweise nur Spaltennamen-Metadaten.When creating DataTable objects, the Fill operation normally creates only column name metadata. Wenn die-Eigenschaft MissingSchemaAction jedoch auf AddWithKeyfestgelegt ist, werden auch die entsprechenden Primärschlüssel und Einschränkungen erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

** DataTable**** Wenn beim Auffüllen von doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName 1", "ColumnName 2", "ColumnName 3" usw. generiert. DbDataAdapterIf the DbDataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Wenn DataSet jedem Resultset mehrere Resultsets hinzugefügt werden, wird es in einer separaten Tabelle abgelegt.When multiple result sets are added to the DataSet each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien DataSet , in DataTable denen mehrere Objekte enthält, deren Namen sich nur in Groß-/KleinschreibungThe Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Fällen Fill führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durch, um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorliegt.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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 aufgerufen wird und der DataSet nur einen DataTable enthält, DataTable dessen Name sich nur in der Groß-/Kleinschreibung unterscheidet, wird aktualisiert.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. In diesem Szenario wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.In this scenario, the comparison is case insensitive. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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.  

Die Fill -Methode kann mehrmals auf demselben DataTableverwendet werden.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden sind.If a primary key exists, incoming rows are merged with matching rows that already exist. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an DataTabledas angefügt.If no primary key exists, incoming rows are appended to the DataTable.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse Fill zurück FillSchema geben, ruft die Implementierung von und für einen .NET Framework-Datenanbieter Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of Fill and FillSchema for a .NET Framework data provider retrieves schema information for only the first result.

Hinweise für Vererber

Diese Überladung der Fill(DataSet) -Methode ist geschützt und wurde für die Verwendung durch einen .NET Framework-Datenanbieter konzipiert.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Siehe auch

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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

dataTables
DataTable[]

Die DataTable-Objekte, die aus der Datenquelle gefüllt werden sollen.The DataTable objects to fill from the data source.

startRecord
Int32

Die nullbasierte Datensatznummer, bei der begonnen wird.The zero-based record number to start with.

maxRecords
Int32

Die maximale Anzahl der abzurufenden Datensätze.The maximum number of records to retrieve.

command
IDbCommand

Der IDbCommand, der ausgeführt wird, um die DataTable-Objekte zu füllen.The IDbCommand executed to fill the DataTable objects.

behavior
CommandBehavior

Einer der CommandBehavior-Werte.One of the CommandBehavior values.

Gibt zurück

Die Anzahl der Zeilen, die in den Datentabellen hinzugefügt bzw. darin aktualisiert wurden.The number of rows added to or refreshed in the data tables.

Ausnahmen

DataSet ist ungültig.The DataSet is invalid.

Die Quelltabelle ist ungültig.The source table is invalid.

- oder --or-

Die Verbindung ist ungültig.The connection is invalid.

Die Verbindung konnte nicht gefunden werden.The connection could not be found.

Der startRecord-Parameter ist kleiner als 0.The startRecord parameter is less than 0.

- oder --or- Der maxRecords-Parameter ist kleiner als 0.The maxRecords parameter is less than 0.

Hinweise

Der maxRecords Wert 0 ruft alle Datensätze ab, die nach dem Startdaten Satz gefunden wurden.A maxRecords value of 0 gets all records found after the start record. Wenn maxRecords größer als die Anzahl der verbleibenden Zeilen ist, werden nur die verbleibenden Zeilen zurückgegeben, und es wird kein Fehler ausgegeben.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned and no error is issued.

Die Fill -Methode ruft die Daten mithilfe einer SELECT-Anweisung aus der Datenquelle ab.The Fill method retrieves the data from the data source using a SELECT statement. Das IDbConnection mit der SELECT-Anweisung verknüpfte Objekt muss gültig sein, aber es muss nicht geöffnet sein.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn das IDbConnection geschlossen wird, Fill bevor aufgerufen wird, wird es geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, es wird jedoch keine Ausnahme ausgelöst.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

Wenn beim DbDataAdapter DataTableAuffüllen eines-Objekts doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName1", "ColumnName2", "ColumnName3" usw. generiert.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jedes Resultset in einer separaten Tabelle abgelegt.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wird die für die SELECT-Abfrage erstellte Tabelle, wenn Sie eine INSERT-Abfrage gefolgt von einer SELECT-Abfrage verarbeiten, als "Table" bezeichnet, da es sich um die erste erstellte Tabelle handelt.Since no table is created for a query that does not return rows, if you were to process an insert query followed by a select query, the table created for the select query would be named "Table", because it is the first table created. Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien DataSet , in DataTable denen mehrere Objekte enthält, deren Namen sich nur in Groß-/KleinschreibungThe Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Fällen Fill führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durch, um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorliegt.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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 aufgerufen wird und der DataSet nur einen DataTable enthält, DataTable dessen Name sich nur in der Groß-/Kleinschreibung unterscheidet, wird aktualisiert.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. In diesem Szenario wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.In this scenario, the comparison is case insensitive. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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, verbleiben die Zeilen, die vor dem Auftreten des Fehlers hinzugefügt wurden, in den Datentabellen.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. Der restliche Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn die zum Auffüllen der DataTable Objekte verwendete SELECT-Anweisung mehrere Ergebnisse zurückgibt, wie z. b. eine Batch SQL-Anweisung, beachten Sie Folgendes:When the SELECT statement used to populate the DataTable objects returns multiple results, such as a batch SQL statement, be aware of the following:

  • Beim Verarbeiten mehrerer Ergebnisse aus einer Batch SQL-Anweisung maxRecords gilt nur für das erste Ergebnis.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. Das gleiche gilt für Zeilen, die die in Kapitel unterteilten Ergebnisse (.NET Framework Datenanbieter nur für OLE DB) enthalten.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Das Ergebnis der obersten Ebene wird durch maxRecordseingeschränkt, aber alle untergeordneten Zeilen werden hinzugefügt.The top level result is limited by maxRecords, but all child rows are added.

  • Wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen.If one of the results contains an error, all subsequent results are skipped.

Hinweis

Der DataSet enthält nicht mehr als die Anzahl der Datensätze, die maxRecordsvon angegeben werden.The DataSet will not contain more than the number of records indicated by maxRecords. Allerdings wird das gesamte Resultset, das von der Abfrage generiert wird, weiterhin vom Server zurückgegeben.However, the entire resultset generated by the query is still returned from the server.

Hinweise für Vererber

Stellen Sie beim Überschreiben Fill(DataSet) ineinerabgeleitetenKlassesicher,dassSiedie-MethodederBasisklasseaufzurufen.Fill(DataSet)When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Siehe auch

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet, DataTable, and IDataReader names.

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

Parameter

dataSet
DataSet

Ein DataSet, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataSet to fill with records and, if necessary, schema.

srcTable
String

Der Name der DataTable, die für die Tabellenzuordnung verwendet werden soll.The name of the DataTable to use for table mapping.

dataReader
IDataReader

Der Name des IDataReader.The name of the IDataReader.

startRecord
Int32

Die nullbasierte Datensatznummer, bei der begonnen wird.The zero-based record number to start with.

maxRecords
Int32

Die maximale Anzahl der abzurufenden Datensätze.The maximum number of records to retrieve.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataSet and DataTable names.

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

Parameter

dataSet
DataSet

Ein DataSet, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32

Die nullbasierte Datensatznummer, bei der begonnen wird.The zero-based record number to start with.

maxRecords
Int32

Die maximale Anzahl der abzurufenden Datensätze.The maximum number of records to retrieve.

srcTable
String

Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.The name of the source table to use for table mapping.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Ausnahmen

DataSet ist ungültig.The DataSet is invalid.

Die Quelltabelle ist ungültig.The source table is invalid.

- oder --or-

Die Verbindung ist ungültig.The connection is invalid.

Die Verbindung konnte nicht gefunden werden.The connection could not be found.

Der startRecord-Parameter ist kleiner als 0.The startRecord parameter is less than 0.

- oder --or- Der maxRecords-Parameter ist kleiner als 0.The maxRecords parameter is less than 0.

Beispiele

Im folgenden Beispiel wird die abgeleitete- OleDbDataAdapterKlasse verwendet, um DataSet eine mit 15 Zeilen, beginnend bei Zeile 10, aus der Categories -Tabelle auszufüllen.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with 15 rows, beginning at row 10, from the Categories table. In diesem Beispiel wird davon ausgegangen, dass OleDbDataAdapter Sie eine DataSetund eine erstellt haben.This example assumes that you have created an OleDbDataAdapter and a 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 Startdaten Satz gefunden wurden.A maxRecords value of 0 gets all records found after the start record. Wenn maxRecords größer als die Anzahl der verbleibenden Zeilen ist, werden nur die verbleibenden Zeilen zurückgegeben, und es wird kein Fehler ausgegeben.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned, and no error is issued.

Wenn der entsprechende SELECT-Befehl eine-Anweisung ist, die Fill mehrere Ergebnisse maxRecords zurückgibt, gilt nur für das erste Ergebnis.If the corresponding select command is a statement returning multiple results, Fill only applies maxRecords to the first result.

Die Fill -Methode ruft die Daten mithilfe einer SELECT-Anweisung aus der Datenquelle ab.The Fill method retrieves the data from the data source using a SELECT statement. Das IDbConnection mit der SELECT-Anweisung verknüpfte Objekt muss gültig sein, aber es muss nicht geöffnet sein.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn das IDbConnection geschlossen wird, Fill bevor aufgerufen wird, wird es geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, es wird jedoch keine Ausnahme ausgelöst.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

Wenn beim DbDataAdapter DataTableAuffüllen eines-Objekts doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName1", "ColumnName2", "ColumnName3" usw. generiert.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jedes Resultset in einer separaten Tabelle abgelegt.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine INSERT-Abfrage verarbeiten, auf die eine SELECT-Abfrage folgt, wird die für die SELECT-Abfrage erstellte Tabelle als "Table" benannt, da es sich um die erste erstellte Tabelle handelt.Because no table is created for a query that does not return rows, if you process an insert query followed by a select query, the table created for the select query is named "Table", because it is the first table created. Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien DataSet , in DataTable denen mehrere Objekte enthält, deren Namen sich nur in Groß-/KleinschreibungThe Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Fällen Fill führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durch, um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorliegt.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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 aufgerufen wird und der DataSet nur einen DataTable enthält, DataTable dessen Name sich nur in der Groß-/Kleinschreibung unterscheidet, wird aktualisiert.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. In diesem Szenario wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.In this scenario, the comparison is case insensitive. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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, verbleiben die Zeilen, die vor dem Auftreten des Fehlers hinzugefügt wurden, in den Datentabellen.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. Der restliche Vorgang wird abgebrochen.The remainder of the operation is aborted.

Beachten Sie Folgendes, wenn die SELECT-Anweisung DataSet , die zum Auffüllen von verwendet wurde, mehrere Ergebnisse zurückgibt, wie z. b. Batch-SQL-Anweisungen:When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, be aware of the following:

  • Beim Verarbeiten mehrerer Ergebnisse aus einer Batch SQL-Anweisung maxRecords gilt nur für das erste Ergebnis.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. Das gleiche gilt für Zeilen, die die in Kapitel unterteilten Ergebnisse (.NET Framework Datenanbieter nur für OLE DB) enthalten.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Das Ergebnis der obersten Ebene wird durch maxRecordseingeschränkt, aber alle untergeordneten Zeilen werden hinzugefügt.The top level result is limited by maxRecords, but all child rows are added.

  • Wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und der DataSetnicht hinzugefügt.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Wenn nachfolgende Fill Aufrufe zum Aktualisieren des Inhalts DataSetvon verwendet werden, müssen zwei Bedingungen erfüllt sein:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. Die SQL-Anweisung sollte mit der Anweisung identisch sein, die anfänglich zum Auffüllen von DataSetverwendet wird.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalten Informationen müssen vorhanden sein.The Key column information must be present.

Wenn Primärschlüssel Informationen vorhanden sind, werden doppelte Zeilen abgestimmt und nur einmal in der DataTable angezeigt, die dem DataSetentspricht.If primary key information is present, any duplicate rows will be reconciled and only appear once in the DataTable that corresponds to the DataSet. Primärschlüssel Informationen können entweder FillSchemaüber festgelegt werden, indem Sie die PrimaryKey -Eigenschaft DataTablevon angeben oder indem Sie MissingSchemaAction die- AddWithKeyEigenschaft auf festlegen.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse FillSchema zurückgeben, ruft die Implementierung von für den .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Fill Sie, MissingSchemaAction wobei auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Hinweis

Der DataSet enthält nicht mehr als die Anzahl der Datensätze, die maxRecordsvon angegeben werden.The DataSet will not contain more than the number of records indicated by maxRecords. Allerdings wird das gesamte von der Abfrage generierte Resultset weiterhin vom Server zurückgegeben.However, the entire result set generated by the query is still returned from the server.

Hinweise für Vererber

Stellen Sie beim Überschreiben Fill(DataSet) ineinerabgeleitetenKlassesicher,dassSiedie-MethodederBasisklasseaufzurufen.Fill(DataSet)When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Siehe auch

Fill(Int32, Int32, DataTable[])

Aktualisiert Zeilen in einer DataTable oder fügt Zeilen hinzu, um Übereinstimmung mit den Zeilen in der Datenquelle herzustellen. Dabei wird mit dem angegebenen Datensatz begonnen, und es werden bis zur angegebenen Anzahl an Datensätzen abgerufen.Adds or refreshes rows in a DataTable to match those in the data source starting at the specified record and retrieving up to the specified maximum number of records.

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.The zero-based record number to start with.

maxRecords
Int32

Die maximale Anzahl der abzurufenden Datensätze.The maximum number of records to retrieve.

dataTables
DataTable[]

Die DataTable-Objekte, die aus der Datenquelle gefüllt werden sollen.The DataTable objects to fill from the data source.

Gibt zurück

Die Anzahl der Zeilen, die dem DataTable erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataTable. Dieser Wert schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This value does not include rows affected by statements that do not return rows.

Hinweise

Die Fill -Methode ruft Zeilen aus der Datenquelle mithilfe der SELECT-Anweisung ab, die SelectCommand von einer zugeordneten Eigenschaft angegeben wird.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungs Objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, Fill bevor aufgerufen wird, wird Sie geöffnet, um Daten abzurufen, und dann wird Sie geschlossen.If the connection is closed before Fill is called, it is opened to retrieve data, and then it is closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Der Fill -Vorgang fügt dann die Zeilen zu DataTable den Ziel Objekten DataSetin hinzu und DataTable erstellt die Objekte, wenn Sie nicht bereits vorhanden sind.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Beim Erstellen DataTable von Objekten erstellt Fill der Vorgang normalerweise nur Spaltennamen-Metadaten.When creating DataTable objects, the Fill operation normally creates only column name metadata. Wenn die-Eigenschaft MissingSchemaAction jedoch auf AddWithKeyfestgelegt ist, werden auch die entsprechenden Primärschlüssel und Einschränkungen erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Wenn beim Auffüllen eines DataTableDaten Adapters doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mit dem Muster "columnname1", "columnname2", "columnname3" usw. generiert.If the data adapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Wenn der DataSetmehrere Resultsets hinzugefügt werden, wird jedes Resultset in einer separaten Tabelle abgelegt.When multiple result sets are added to the DataSet, each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Wenn die SELECT-Anweisung zum Auffüllen von DataSet mehrere Ergebnisse zurückgibt, wie z. b. eine Batch-SQL-Anweisung, werden alle nachfolgenden Ergebnisse übersprungen und der DataSetnicht hinzugefügt, wenn eines der Ergebnisse einen Fehler enthält.When the SELECT statement used to populate the DataSet returns multiple results, such as a batch SQL statements, if one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Die Fill -Methode kann mehrmals auf demselben DataTableverwendet werden.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden sind.If a primary key exists, incoming rows are merged with matching rows that already exist. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an DataTabledas angefügt.If no primary key exists, incoming rows are appended to the DataTable.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse FillSchema zurückgeben, ruft die Implementierung von für den .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Fill Sie, MissingSchemaAction wobei auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Siehe auch

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.Adds or refreshes rows in a specified range in the DataSet to match those in the data source using the DataTable name.

public:
 int Fill(System::Data::DataTable ^ dataTable);
public int Fill (System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int

Parameter

dataTable
DataTable

Der Name der DataTable, die für die Tabellenzuordnung verwendet werden soll.The name of the DataTable to use for table mapping.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Ausnahmen

Die Quelltabelle ist ungültig.The source table is invalid.

Hinweise

Die Fill -Methode ruft Zeilen aus der Datenquelle mithilfe der SELECT-Anweisung ab, die SelectCommand von einer zugeordneten Eigenschaft angegeben wird.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungs Objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, Fill bevor aufgerufen wird, wird Sie geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Der Fill -Vorgang fügt dann die Zeilen zu DataTable den Ziel Objekten DataSetin hinzu und DataTable erstellt die Objekte, wenn Sie nicht bereits vorhanden sind.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Beim Erstellen DataTable von Objekten erstellt Fill der Vorgang normalerweise nur Spaltennamen-Metadaten.When creating DataTable objects, the Fill operation normally creates only column name metadata. Wenn die-Eigenschaft MissingSchemaAction jedoch auf AddWithKeyfestgelegt ist, werden auch die entsprechenden Primärschlüssel und Einschränkungen erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

** DataTable**** Wenn beim Auffüllen von doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName 1", "ColumnName 2", "ColumnName 3" usw. generiert. DbDataAdapterIf the DbDataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Wenn DataSet jedem Resultset mehrere Resultsets hinzugefügt werden, wird es in einer separaten Tabelle abgelegt.When multiple result sets are added to the DataSet each result set is placed in a separate table.

Die-über Fill Ladung von DataTable , die als Parameter annimmt, erhält nur das erste Ergebnis.The overload of Fill that takes DataTable as a parameter only obtains the first result. Verwenden Sie eine über Fill Ladung von DataSet , die als Parameter verwendet, um mehrere Ergebnisse zu erhalten.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

Die Fill -Methode unterstützt Szenarien DataSet , in DataTable denen mehrere Objekte enthält, deren Namen sich nur in Groß-/KleinschreibungThe Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Fällen Fill führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durch, um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorliegt.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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 aufgerufen wird und der DataSet nur einen DataTable enthält, DataTable dessen Name sich nur in der Groß-/Kleinschreibung unterscheidet, wird aktualisiert.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. In diesem Szenario wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.In this scenario, the comparison is case insensitive. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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.  

Die Fill -Methode kann mehrmals auf demselben DataTableverwendet werden.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden sind.If a primary key exists, incoming rows are merged with matching rows that already exist. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an DataTabledas angefügt.If no primary key exists, incoming rows are appended to the DataTable.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse Fill zurück FillSchema geben, ruft die Implementierung von und für einen .NET Framework-Datenanbieter Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of Fill and FillSchema for a .NET Framework data provider retrieves schema information for only the first result.

Hinweise für Vererber

Diese Überladung der Fill(DataSet) -Methode ist geschützt und wurde für die Verwendung durch einen .NET Framework-Datenanbieter konzipiert.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Siehe auch

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.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable and IDataReader names.

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

Parameter

dataTable
DataTable

Ein DataTable, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataTable to fill with records and, if necessary, schema.

dataReader
IDataReader

Der Name des IDataReader.The name of the IDataReader.

Gibt zurück

Die Anzahl der Zeilen, die dem DataTable erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataTable. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

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.Adds or refreshes rows in the DataSet to match those in the data source using the DataSet and DataTable names.

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

Parameter

dataSet
DataSet

Ein DataSet, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataSet to fill with records and, if necessary, schema.

srcTable
String

Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.The name of the source table to use for table mapping.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Ausnahmen

Die Quelltabelle ist ungültig.The source table is invalid.

Beispiele

Im folgenden Beispiel wird die abgeleitete- OleDbDataAdapterKlasse verwendet, um DataSet eine mit Zeilen aus der Categories-Tabelle zu füllen.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with rows from the categories table. In diesem Beispiel wird davon ausgegangen, dass OleDbDataAdapter Sie eine DataSetund eine erstellt haben.This example assumes that you have created an OleDbDataAdapter and a 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 mithilfe einer SELECT-Anweisung aus der Datenquelle ab.The Fill method retrieves the data from the data source using a SELECT statement. Das IDbConnection Objekt, das dem SELECT-Befehl zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Wenn das IDbConnection geschlossen wird, Fill bevor aufgerufen wird, wird es geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und es wird keine Ausnahme ausgelöst.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

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.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird jedes Resultset in einer separaten Tabelle abgelegt.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wird die für die SELECT-Abfrage erstellte Tabelle, wenn Sie eine INSERT-Abfrage gefolgt von einer SELECT-Abfrage verarbeiten, als "Table" bezeichnet, da es sich um die erste erstellte Tabelle handelt.Since no table is created for a query that does not return rows, if you were to process an insert query followed by a select query, the table created for the select query would be named "Table", because it is the first table created. Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien DataSet , in DataTable denen mehrere Objekte enthält, deren Namen sich nur in Groß-/KleinschreibungThe Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Fällen Fill führt einen Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durch, um die entsprechende Tabelle zu finden, und erstellt eine neue Tabelle, wenn keine genaue Übereinstimmung vorliegt.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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 aufgerufen wird und der DataSet nur einen DataTable enthält, DataTable dessen Name sich nur in der Groß-/Kleinschreibung unterscheidet, wird aktualisiert.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. In diesem Szenario wird beim Vergleich die Groß-/Kleinschreibung nicht beachtet.In this scenario, the comparison is case insensitive. Der folgende C# Code veranschaulicht dieses Verhalten.The following C# code illustrates this behavior.

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, verbleiben die Zeilen, die vor dem Auftreten des Fehlers hinzugefügt wurden, in den Datentabellen.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. Der restliche Vorgang wird abgebrochen.The remainder of the operation is aborted.

Beachten Sie Folgendes, wenn die SELECT-Anweisung DataSet , die zum Auffüllen von verwendet wurde, mehrere Ergebnisse zurückgibt, wie z. b. eine Batch SQL-Anweisung:When the SELECT statement used to populate the DataSet returns multiple results, such as a batch SQL statement, be aware of the following:

  • Wenn eines der Ergebnisse einen Fehler enthält, werden alle nachfolgenden Ergebnisse übersprungen und der DataSetnicht hinzugefügt.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Wenn nachfolgende Fill Aufrufe zum Aktualisieren des Inhalts DataSetvon verwendet werden, müssen zwei Bedingungen erfüllt sein:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. Die SQL-Anweisung sollte mit der Anweisung identisch sein, die anfänglich zum Auffüllen von DataSetverwendet wird.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalten Informationen müssen vorhanden sein.The Key column information must be present. Wenn Primärschlüssel Informationen vorhanden sind, werden doppelte Zeilen abgestimmt und nur einmal in der DataTable angezeigt, die dem DataSetentspricht.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. Primärschlüssel Informationen können entweder FillSchemaüber festgelegt werden, indem Sie die PrimaryKey -Eigenschaft DataTablevon angeben oder indem Sie MissingSchemaAction die- AddWithKeyEigenschaft auf festlegen.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse FillSchema zurückgeben, ruft die Implementierung von für den .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Fill Sie, MissingSchemaAction wobei auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Hinweise für Vererber

Stellen Sie beim Überschreiben Fill(DataSet) ineinerabgeleitetenKlassesicher,dassSiedie-MethodederBasisklasseaufzurufen.Fill(DataSet)When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Siehe auch

Fill(DataSet)

Fügt Zeilen in DataSet hinzu oder aktualisiert diese.Adds or refreshes rows in the DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int

Parameter

dataSet
DataSet

Ein DataSet, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataSet to fill with records and, if necessary, schema.

Gibt zurück

Die Anzahl der Zeilen, die dem DataSet erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Implementiert

Hinweise

Die Fill -Methode ruft die Daten mithilfe einer SELECT-Anweisung aus der Datenquelle ab.The Fill method retrieves the data from the data source using a SELECT statement. Das IDbConnection Objekt, das dem SELECT-Befehl zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Wenn das IDbConnection geschlossen wird, Fill bevor aufgerufen wird, wird es geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Wenn beim Auffüllen der Datentabellen ein Fehler oder eine Ausnahme aufgetreten ist, verbleiben die Zeilen, die vor dem Auftreten des Fehlers hinzugefügt wurden, in den Datentabellen.If an error or an exception is encountered while populating the data tables, rows added prior to the occurrence of the error remain in the data tables. Der restliche Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt DataSet, und es wird keine Ausnahme ausgelöst.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

Wenn beim DbDataAdapter DataTableAuffüllen eines-Objekts doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mit dem Muster "ColumnName1", "ColumnName2", "ColumnName3" usw. generiert.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Wenn die angegebene Abfrage mehrere Ergebnisse zurückgibt, wird das Resultset für jede Zeile, die die Abfrage zurückgibt, in eine separate Tabelle eingefügt.When the query specified returns multiple results, the result set for each row returning query is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Da keine Tabelle für eine Abfrage erstellt wird, die keine Zeilen zurückgibt, wenn Sie eine INSERT-Abfrage verarbeiten, auf die eine SELECT-Abfrage folgt, wird die für die SELECT-Abfrage erstellte Tabelle als "Table" benannt, da es sich um die erste erstellte Tabelle handelt.Because no table is created for a query that does not return rows, if you process an insert query followed by a select query, the table created for the select query is named "Table" because it is the first table created. Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Wenn die SELECT-Anweisung zum Auffüllen von DataSet mehrere Ergebnisse zurückgibt, wie z. b. Batch-SQL-Anweisungen, werden alle nachfolgenden Ergebnisse übersprungen und nicht DataSetzu hinzugefügt, wenn eines der Ergebnisse einen Fehler enthält.When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, if one of the results contains an error, all subsequent results are skipped and are not added to the DataSet.

Wenn nachfolgende Fill Aufrufe zum Aktualisieren des Inhalts DataSetvon verwendet werden, müssen zwei Bedingungen erfüllt sein:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. Die SQL-Anweisung sollte mit der Anweisung identisch sein, die anfänglich zum Auffüllen von DataSetverwendet wird.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalten Informationen müssen vorhanden sein.The Key column information must be present.

Wenn Primärschlüssel Informationen vorhanden sind, werden doppelte Zeilen abgestimmt und nur einmal in der DataTable angezeigt, die dem DataSetentspricht.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. Primärschlüssel Informationen können entweder FillSchemaüber festgelegt werden, indem Sie die PrimaryKey -Eigenschaft DataTablevon angeben oder indem Sie MissingSchemaAction die- AddWithKeyEigenschaft auf festlegen.Primary key information may be set either through FillSchema, by specifying the PrimaryKey property of the DataTable, or by setting the MissingSchemaAction property to AddWithKey.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse FillSchema zurückgeben, ruft die Implementierung von für den .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Fill Sie, MissingSchemaAction wobei auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Siehe auch

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.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable, IDbCommand and CommandBehavior.

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

Parameter

dataTable
DataTable

Ein DataTable, das mit Datensätzen und bei Bedarf mit einem Schema gefüllt wird.A DataTable to fill with records and, if necessary, schema.

command
IDbCommand

Die SQL-SELECT-Anweisung, mit der Zeilen aus der Datenquelle abgerufen werden.The SQL SELECT statement used to retrieve rows from the data source.

behavior
CommandBehavior

Einer der CommandBehavior-Werte.One of the CommandBehavior values.

Gibt zurück

Die Anzahl der Zeilen, die dem DataTable erfolgreich hinzufügt bzw. darin aktualisiert wurden.The number of rows successfully added to or refreshed in the DataTable. Dies schließt keine Zeilen ein, die von Anweisungen betroffen sind, die keine Zeilen zurückgeben.This does not include rows affected by statements that do not return rows.

Hinweise

Die Fill -Methode ruft Zeilen aus der Datenquelle mithilfe der SELECT-Anweisung ab, die SelectCommand von einer zugeordneten Eigenschaft angegeben wird.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungs Objekt, das der SELECT-Anweisung zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, Fill bevor aufgerufen wird, wird Sie geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the connection is closed before Fill is called, it is opened to retrieve data and then closed. Wenn die Verbindung geöffnet ist, Fill bevor aufgerufen wird, bleibt Sie geöffnet.If the connection is open before Fill is called, it remains open.

Der Fill -Vorgang fügt dann die Zeilen dem angegebenen Ziel DataTable Objekt in der DataSethinzu, wobei DataTable das-Objekt erstellt wird, wenn es nicht bereits vorhanden ist.The Fill operation then adds the rows to the specified destination DataTable object in the DataSet, creating the DataTable object if it does not already exist. Beim Erstellen eines DataTable -Objekts erstellt Fill der Vorgang normalerweise nur Spaltennamen-Metadaten.When creating a DataTable object, the Fill operation normally creates only column name metadata. Wenn die-Eigenschaft MissingSchemaAction jedoch auf AddWithKeyfestgelegt ist, werden auch die entsprechenden Primärschlüssel und Einschränkungen erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Wenn beim DbDataAdapter DataTableAuffüllen eines-Objekts doppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName1", "ColumnName2", "ColumnName3" usw. generiert.If the DbDataAdapter object encounters duplicate columns while populating a DataTable, it will generate names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Die-über Fill Ladung von DataTable , die als Parameter annimmt, erhält nur das erste Ergebnis.The overload of Fill that takes DataTable as a parameter only obtains the first result. Verwenden Sie eine über Fill Ladung von DataSet , die als Parameter verwendet, um mehrere Ergebnisse zu erhalten.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

Die Fill -Methode kann mehrmals auf demselben DataTableverwendet werden.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden sind.If a primary key exists, incoming rows are merged with matching rows that already exist. Wenn kein Primärschlüssel vorhanden ist, werden eingehende Zeilen an DataTabledas angefügt.If no primary key exists, incoming rows are appended to the DataTable.

Wenn vom SelectCommand die Ergebnisse eines OUTER JOIN zurückgegeben werden, wird vom DataAdapter kein PrimaryKey -Wert für die resultierende DataTablefestgelegt.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Sie müssen den Primärschlüssel explizit definieren, um sicherzustellen, dass doppelte Zeilen ordnungsgemäß aufgelöst werden.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Weitere Informationen finden Sie unter Definieren von primär Schlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse FillSchema zurückgeben, ruft die Implementierung von für den .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis ab.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Fill Sie, MissingSchemaAction wobei auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to 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 konzipiert.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Siehe auch

Gilt für: