DbDataAdapter.Fill DbDataAdapter.Fill DbDataAdapter.Fill DbDataAdapter.Fill Method

Definition

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

Überlädt

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und Quell-Tabellennamen, Befehlszeichenfolge und das Befehlsverhalten.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) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und DataTable Namen.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) Fill(DataSet, String, IDataReader, Int32, Int32) Fill(DataSet, String, IDataReader, Int32, Int32)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet, DataTable, und IDataReader Namen.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) Fill(DataSet, Int32, Int32, String) Fill(DataSet, Int32, Int32, String)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und DataTable Namen.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[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[])

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, beginnend mit den angegebenen Datensatz und die angegebene maximale Anzahl von Datensätzen abrufen.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) Fill(DataTable) Fill(DataTable)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataTable Name.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) Fill(DataTable, IDataReader) Fill(DataTable, IDataReader)

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, die mit dem angegebenen DataTable und IDataReader Namen.Adds or refreshes rows in a DataTable to match those in the data source using the specified DataTable and IDataReader names.

Fill(DataSet, String) Fill(DataSet, String) Fill(DataSet, String)

Fügt hinzu oder aktualisiert Zeilen in der DataSet entsprechend in der Datenquelle mit dem DataSet und DataTable Namen.Adds or refreshes rows in the DataSet to match those in the data source using the DataSet and DataTable names.

Fill(DataSet) Fill(DataSet) Fill(DataSet)

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

Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, die mit dem angegebenen DataTable, IDbCommand und CommandBehavior.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) Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und Quell-Tabellennamen, Befehlszeichenfolge und das Befehlsverhalten.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 DataSet DataSet DataSet

Ein DataSet mit Datensätzen füllen und, falls erforderlich, Schema.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

Die nullbasierte Datensatznummer, mit zu beginnen.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

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

srcTable
String String String 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 IDbCommand IDbCommand IDbCommand

Der SQL SELECT-Anweisung zum Abrufen von Zeilen aus der Datenquelle verwendet.The SQL SELECT statement used to retrieve rows from the data source.

Gibt zurück

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

Ausnahmen

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 ab, aus der Datenquelle, die mithilfe der SELECT-Anweisung angegeben, die von einem zugeordneten SelectCommand Eigenschaft.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungsobjekt, das mit der SELECT-Anweisung verknüpft ist, muss gültig sein, aber es muss nicht geöffnet werden.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, bevor Sie Fill wird aufgerufen, es wird geöffnet, um Daten abzurufen und anschließend geschlossen.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es geöffnet.If the connection is open before Fill is called, it remains open.

Die Fill Vorgang dann fügt die Zeilen, in Ziel DataTable Objekte in der DataSet, wodurch die DataTable Objekte an, 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 von DataTable Objekte, die Fill -Vorgang wird normalerweise nur Spaltennamen-Metadaten erstellt.When creating DataTable objects, the Fill operation normally creates only column name metadata. Aber wenn die MissingSchemaAction -Eigenschaftensatz auf AddWithKey, entsprechenden primären Schlüsseln und Einschränkungen werden auch erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Wenn die DbDataAdapter auf trifft doppelte Spalten beim Auffüllen einer DataTable, generiert er Namen für die nachfolgenden Spalten, die mit dem Muster "Columnname1", "Columnname2", "Columnname3", und So weiter.If 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 mehrere Resultsets hinzugefügt werden, um die DataSet jedes Resultset in einer separaten Tabelle platziert wird.When multiple result sets are added to the DataSet each result set is placed in a separate table. Zusätzliche Resultsets werden mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Anwendungen mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien, in denen die DataSet enthält mehrere DataTable Objekte, deren Namen sich nur durch Fall unterscheiden.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Situationen Fill führt einen Vergleich Groß-/Kleinschreibung beachtet, um die entsprechende Tabelle zu suchen, und erstellt eine neue Tabelle aus, wenn keine genaue Übereinstimmung vorhanden ist.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 die DataSet enthält nur eine DataTable , deren Name unterscheidet sich nur durch den Fall, DataTable 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 ist der Vergleich Groß-und Kleinschreibung.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.  

Sie können die Fill -Methode mehrere Male auf der gleichen DataTable.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden die eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden.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 angehängt der DataTable.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben Fill und FillSchema für eine .NET Framework Anbieter abruft, die Schemainformationen für nur das erste Ergebnis.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 von der Fill(DataSet) Methode ist geschützt und durch einen .NET Framework-Datenanbieter für die Verwendung vorgesehen.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) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und DataTable Namen.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, aus der Datenquelle gefüllt werden.The DataTable objects to fill from the data source.

startRecord
Int32 Int32 Int32 Int32

Die nullbasierte Datensatznummer, mit zu beginnen.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

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

command
IDbCommand IDbCommand IDbCommand IDbCommand

Die IDbCommand ausgeführt, um das Ausfüllen der DataTable Objekte.The IDbCommand executed to fill the DataTable objects.

Gibt zurück

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

Ausnahmen

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

Ein maxRecords Wert 0 ruft alle Datensätze, die nach dem Startdatensatz gefunden.A maxRecords value of 0 gets all records found after the start record. Wenn maxRecords ist größer als die Anzahl der verbleibenden Zeilen nur die verbleibenden Zeilen zurückgegeben werden und 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 aus der Datenquelle, die mithilfe einer SELECT-Anweisung ab.The Fill method retrieves the data from the data source using a SELECT statement. Die IDbConnection Objekt verknüpft ist, mit der SELECT-Anweisung muss gültig sein, aber es muss nicht geöffnet werden.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die IDbConnection wird geschlossen, bevor Fill wird aufgerufen, es wird geöffnet, um Daten abzurufen und anschließend geschlossen.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es 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, um die DataSet, jedoch wird 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 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 ","Columnname3 ", und so weiter.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 platziert.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).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, die keine Zeilen zurückgibt erstellt wurde würden Sie eine Insert-Abfrage, gefolgt von einer select-Abfrage zu verarbeiten, würde für die select-Abfrage erstellte Tabelle "Table", benannt werden, da es die erste Tabelle erstellt wird.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 mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien, in denen die DataSet enthält mehrere DataTable Objekte, deren Namen sich nur durch Fall unterscheiden.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Situationen Fill führt einen Vergleich Groß-/Kleinschreibung beachtet, um die entsprechende Tabelle zu suchen, und erstellt eine neue Tabelle aus, wenn keine genaue Übereinstimmung vorhanden ist.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 die DataSet enthält nur eine DataTable , deren Name unterscheidet sich nur durch den Fall, DataTable 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 ist der Vergleich Groß-und Kleinschreibung.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 ein Fehler oder eine Ausnahme beim Füllen der Datentabellen auftritt, bleiben vor dem Auftreten des Fehlers hinzugefügte Zeilen 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 Rest der Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn die SELECT-Anweisung zum Füllen der DataTable Objekte mehrere Ergebnisse zurückgibt, wie z. B. ein 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:

  • Bei der Verarbeitung von mehreren Ergebnissen aus einem 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. Dasselbe gilt für Zeilen, die in Kapitel unterteilten Ergebnisse (.NET Framework-Datenanbieter für OLE DB nur) enthält.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Das Ergebnis der obersten Ebene wird durch beschränkt maxRecords, aber es werden alle untergeordneten Zeilen 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 ausgelassen.If one of the results contains an error, all subsequent results are skipped.

Hinweis

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

Hinweise für Vererber

Beim Überschreiben von Fill(DataSet) in einer abgeleiteten Klasse, werden Sie sicher, dass der Basisklasse aufrufen Fill(DataSet) Methode.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) Fill(DataSet, String, IDataReader, Int32, Int32) Fill(DataSet, String, IDataReader, Int32, Int32)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet, DataTable, und IDataReader Namen.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 DataSet DataSet DataSet

Ein DataSet mit Datensätzen füllen und, falls erforderlich, Schema.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String String

Der Name des der DataTable für die tabellenzuordnung verwendet.The name of the DataTable to use for table mapping.

dataReader
IDataReader IDataReader IDataReader IDataReader

Der Name des IDataReader.The name of the IDataReader.

startRecord
Int32 Int32 Int32 Int32

Die nullbasierte Datensatznummer, mit zu beginnen.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

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

Gibt zurück

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

Fill(DataSet, Int32, Int32, String) Fill(DataSet, Int32, Int32, String) Fill(DataSet, Int32, Int32, String)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataSet und DataTable Namen.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 DataSet DataSet DataSet

Ein DataSet mit Datensätzen füllen und, falls erforderlich, Schema.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

Die nullbasierte Datensatznummer, mit zu beginnen.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

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

srcTable
String String String 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 erfolgreich hinzufügt bzw. darin aktualisiert die DataSet.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen betroffen von Anweisungen, 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.

- 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 Klasse OleDbDataAdapter, zum Füllen einer DataSet mit 15 Zeilen, die in Zeile 10, ab der Kategorien Tabelle.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 Sie erstellt haben eine OleDbDataAdapter und DataSet.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

Ein maxRecords Wert 0 ruft alle Datensätze, die nach dem Startdatensatz gefunden.A maxRecords value of 0 gets all records found after the start record. Wenn maxRecords ist größer als die Anzahl der verbleibenden Zeilen nur die verbleibenden Zeilen zurückgegeben werden, und 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 Sie der entsprechenden select-Befehl eine Anweisung, die mehrere Ergebnisse zurückgibt, ist Fill gilt nur maxRecords auf 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 aus der Datenquelle, die mithilfe einer SELECT-Anweisung ab.The Fill method retrieves the data from the data source using a SELECT statement. Die IDbConnection Objekt verknüpft ist, mit der SELECT-Anweisung muss gültig sein, aber es muss nicht geöffnet werden.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die IDbConnection wird geschlossen, bevor Fill wird aufgerufen, wird geöffnet, um Daten abzurufen und dann geschlossen.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es 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, um die DataSet, jedoch wird 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 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 ","Columnname3 ", und so weiter.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 platziert.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).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, die keine Zeilen zurückgibt erstellt wird, wenn Sie eine Insert-Abfrage, gefolgt von einer select-Abfrage verarbeiten, heißt in der Tabelle, die für die select-Abfrage erstellt wurde "Table", da es die erste Tabelle erstellt wird.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 mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien, in denen die DataSet enthält mehrere DataTable Objekte, deren Namen sich nur durch Fall unterscheiden.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Situationen Fill führt einen Vergleich Groß-/Kleinschreibung beachtet, um die entsprechende Tabelle zu suchen, und erstellt eine neue Tabelle aus, wenn keine genaue Übereinstimmung vorhanden ist.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 die DataSet enthält nur eine DataTable , deren Name unterscheidet sich nur durch den Fall, DataTable 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 ist der Vergleich Groß-und Kleinschreibung.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 ein Fehler oder eine Ausnahme beim Füllen der Datentabellen auftritt, bleiben vor dem Auftreten des Fehlers hinzugefügte Zeilen 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 Rest der Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn die SELECT-Anweisung zum Füllen der DataSet mehrere Ergebnisse zurückgibt, z. B. SQL-Anweisungen, berücksichtigen Sie Folgendes:When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, be aware of the following:

  • Bei der Verarbeitung von mehreren Ergebnissen aus einem 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. Dasselbe gilt für Zeilen, die in Kapitel unterteilten Ergebnisse (.NET Framework-Datenanbieter für OLE DB nur) enthält.The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Das Ergebnis der obersten Ebene wird durch beschränkt maxRecords, aber es werden alle untergeordneten Zeilen 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 nicht hinzugefügt, die DataSet.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Bei nachfolgenden Verwendung Fill Aufrufe zum Aktualisieren des Inhalts der DataSet, 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 zunächst zum Auffüllen verwendet entsprechen den DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalteninformationen muss vorhanden sein.The Key column information must be present.

Wenn der Primärschlüssel vorhanden ist, alle doppelten Zeilen abgestimmt werden und nur einmal in werden die DataTable , entspricht die DataSet.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üsselinformationen kann festgelegt werden, entweder durch FillSchema, durch Angabe der PrimaryKey Eigenschaft der DataTable, oder durch Festlegen der MissingSchemaAction Eigenschaft AddWithKey.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben FillSchema für die .NET Framework-Datenanbieter für OLE DB Schemainformationen für nur 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. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill mit der MissingSchemaAction festgelegt AddWithKey.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Hinweis

Die DataSet enthält nicht mehr als die angegebene Anzahl von Datensätzen durch maxRecords.The DataSet will not contain more than the number of records indicated by maxRecords. Das gesamte, von der Abfrage generierte Resultset ist jedoch immer noch vom Server zurückgegeben.However, the entire result set generated by the query is still returned from the server.

Hinweise für Vererber

Beim Überschreiben von Fill(DataSet) in einer abgeleiteten Klasse, werden Sie sicher, dass der Basisklasse aufrufen Fill(DataSet) Methode.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[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[])

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, beginnend mit den angegebenen Datensatz und die angegebene maximale Anzahl von Datensätzen abrufen.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 Int32 Int32 Int32

Die nullbasierte Datensatznummer, mit zu beginnen.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

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

dataTables
DataTable[]

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

Gibt zurück

Die Anzahl der Zeilen erfolgreich hinzufügt bzw. darin aktualisiert die DataTable.The number of rows successfully added to or refreshed in the DataTable. Dieser Wert schließt keine Zeilen, die betroffen von Anweisungen, 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 ab, aus der Datenquelle, die mithilfe der SELECT-Anweisung angegeben, die von einem zugeordneten SelectCommand Eigenschaft.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. Das Verbindungsobjekt, das mit der SELECT-Anweisung verknüpft ist, muss gültig sein, aber es muss nicht geöffnet werden.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, bevor Sie Fill wird aufgerufen, wird Sie zum Abrufen von Daten geöffnet, und klicken Sie dann geschlossen.If the connection is closed before Fill is called, it is opened to retrieve data, and then it is closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es geöffnet.If the connection is open before Fill is called, it remains open.

Die Fill Vorgang dann fügt die Zeilen, in Ziel DataTable Objekte in der DataSet, wodurch die DataTable Objekte an, 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 von DataTable Objekte, die Fill -Vorgang wird normalerweise nur Spaltennamen-Metadaten erstellt.When creating DataTable objects, the Fill operation normally creates only column name metadata. Aber wenn die MissingSchemaAction -Eigenschaftensatz auf AddWithKey, entsprechenden primären Schlüsseln und Einschränkungen werden auch 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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Wenn der Datenadapter doppelte Spalten beim Auffüllen des findet eine DataTable, generiert er Namen für die nachfolgenden Spalten, die mit dem Muster "columnname1", "columnname2", "Spaltenname3" und So weiter.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 mehrere Resultsets hinzugefügt werden, um die DataSet, wird jedes Resultset in einer separaten Tabelle platziert.When multiple result sets are added to the DataSet, each result set is placed in a separate table. Zusätzliche Resultsets werden mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Anwendungen mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Wenn die SELECT-Anweisung zum Füllen der DataSet mehrere Ergebnisse zurückgibt, z. B. eine SQL-Anweisungen, wenn ein Ergebnis einen Fehler enthält alle nachfolgenden Ergebnisse werden übersprungen, und nicht hinzugefügt, die DataSet.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.

Sie können die Fill -Methode mehrere Male auf der gleichen DataTable.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden die eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden.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 angehängt der DataTable.If no primary key exists, incoming rows are appended to the DataTable.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben FillSchema für die .NET Framework-Datenanbieter für OLE DB Schemainformationen für nur 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. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill mit der MissingSchemaAction festgelegt AddWithKey.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Siehe auch

Fill(DataTable) Fill(DataTable) Fill(DataTable)

Fügt hinzu oder aktualisiert Zeilen in einem angegebenen Bereich in der DataSet entsprechend in der Datenquelle mithilfe der DataTable Name.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 DataTable DataTable DataTable

Der Name des der DataTable für die tabellenzuordnung verwendet.The name of the DataTable to use for table mapping.

Gibt zurück

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

Ausnahmen

Hinweise

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

Die Fill Vorgang dann fügt die Zeilen, in Ziel DataTable Objekte in der DataSet, wodurch die DataTable Objekte an, 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 von DataTable Objekte, die Fill -Vorgang wird normalerweise nur Spaltennamen-Metadaten erstellt.When creating DataTable objects, the Fill operation normally creates only column name metadata. Aber wenn die MissingSchemaAction -Eigenschaftensatz auf AddWithKey, entsprechenden primären Schlüsseln und Einschränkungen werden auch erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Wenn die DbDataAdapter auf trifft doppelte Spalten beim Auffüllen einer DataTable, generiert er Namen für die nachfolgenden Spalten, die mit dem Muster "Columnname1", "Columnname2", "Columnname3", und So weiter.If 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 mehrere Resultsets hinzugefügt werden, um die DataSet jedes Resultset in einer separaten Tabelle platziert wird.When multiple result sets are added to the DataSet each result set is placed in a separate table.

Die Überladung von Fill akzeptiert DataTable wie ein Parameter nur das erste Ergebnis abruft.The overload of Fill that takes DataTable as a parameter only obtains the first result. Verwenden Sie eine Überladung der Fill akzeptiert DataSet als Parameter an 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, in denen die DataSet enthält mehrere DataTable Objekte, deren Namen sich nur durch Fall unterscheiden.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Situationen Fill führt einen Vergleich Groß-/Kleinschreibung beachtet, um die entsprechende Tabelle zu suchen, und erstellt eine neue Tabelle aus, wenn keine genaue Übereinstimmung vorhanden ist.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 die DataSet enthält nur eine DataTable , deren Name unterscheidet sich nur durch den Fall, DataTable 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 ist der Vergleich Groß-und Kleinschreibung.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.  

Sie können die Fill -Methode mehrere Male auf der gleichen DataTable.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden die eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden.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 angehängt der DataTable.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben Fill und FillSchema für eine .NET Framework Anbieter abruft, die Schemainformationen für nur das erste Ergebnis.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 von der Fill(DataSet) Methode ist geschützt und durch einen .NET Framework-Datenanbieter für die Verwendung vorgesehen.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) Fill(DataTable, IDataReader) Fill(DataTable, IDataReader)

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, die mit dem angegebenen DataTable und IDataReader Namen.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 DataTable DataTable DataTable

Ein DataTable mit Datensätzen füllen und, falls erforderlich, Schema.A DataTable to fill with records and, if necessary, schema.

dataReader
IDataReader IDataReader IDataReader IDataReader

Der Name des IDataReader.The name of the IDataReader.

Gibt zurück

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

Fill(DataSet, String) Fill(DataSet, String) Fill(DataSet, String)

Fügt hinzu oder aktualisiert Zeilen in der DataSet entsprechend in der Datenquelle mit dem DataSet und DataTable Namen.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 DataSet DataSet DataSet

Ein DataSet mit Datensätzen füllen und, falls erforderlich, Schema.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String 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 erfolgreich hinzufügt bzw. darin aktualisiert die DataSet.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen betroffen von Anweisungen, 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 Klasse OleDbDataAdapter, zum Füllen einer DataSet mit Zeilen aus der Categories-Tabelle.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 Sie erstellt haben eine OleDbDataAdapter und DataSet.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 aus der Datenquelle, die mithilfe einer SELECT-Anweisung ab.The Fill method retrieves the data from the data source using a SELECT statement. Die IDbConnection Objekt verknüpft ist, mit der select-Befehl muss gültig sein, aber es muss nicht geöffnet werden.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Wenn die IDbConnection wird geschlossen, bevor Fill wird aufgerufen, es wird geöffnet, um Daten abzurufen und anschließend geschlossen.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es 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, um die 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 platziert.When the query specified returns multiple results, each result set is placed in a separate table. Zusätzliche Resultsets werden mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).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, die keine Zeilen zurückgibt erstellt wurde würden Sie eine Insert-Abfrage, gefolgt von einer select-Abfrage zu verarbeiten, würde für die select-Abfrage erstellte Tabelle "Table", benannt werden, da es die erste Tabelle erstellt wird.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 mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Die Fill -Methode unterstützt Szenarien, in denen die DataSet enthält mehrere DataTable Objekte, deren Namen sich nur durch Fall unterscheiden.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. In solchen Situationen Fill führt einen Vergleich Groß-/Kleinschreibung beachtet, um die entsprechende Tabelle zu suchen, und erstellt eine neue Tabelle aus, wenn keine genaue Übereinstimmung vorhanden ist.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 die DataSet enthält nur eine DataTable , deren Name unterscheidet sich nur durch den Fall, DataTable 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 ist der Vergleich Groß-und Kleinschreibung.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 ein Fehler oder eine Ausnahme beim Füllen der Datentabellen auftritt, bleiben vor dem Auftreten des Fehlers hinzugefügte Zeilen 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 Rest der Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn die SELECT-Anweisung zum Füllen der DataSet mehrere Ergebnisse zurückgibt, wie z. B. ein Batch SQL-Anweisung, beachten Sie Folgendes: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 nicht hinzugefügt, die DataSet.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Bei nachfolgenden Verwendung Fill Aufrufe zum Aktualisieren des Inhalts der DataSet, 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 zunächst zum Auffüllen verwendet entsprechen den DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalteninformationen muss vorhanden sein.The Key column information must be present. Wenn ein Primärschlüssel vorhanden ist, alle doppelten Zeilen abgestimmt sind und nur einmal in der DataTable , entspricht die DataSet.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üsselinformationen kann festgelegt werden, entweder durch FillSchema, durch Angabe der PrimaryKey Eigenschaft der DataTable, oder durch Festlegen der MissingSchemaAction Eigenschaft AddWithKey.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben FillSchema für die .NET Framework-Datenanbieter für OLE DB Schemainformationen für nur 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. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill mit der MissingSchemaAction festgelegt AddWithKey.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Hinweise für Vererber

Beim Überschreiben von Fill(DataSet) in einer abgeleiteten Klasse, werden Sie sicher, dass der Basisklasse aufrufen Fill(DataSet) Methode.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Siehe auch

Fill(DataSet) Fill(DataSet) Fill(DataSet)

Fügt hinzu oder aktualisiert Zeilen in der DataSet.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 DataSet DataSet DataSet

Ein DataSet mit Datensätzen füllen und, falls erforderlich, Schema.A DataSet to fill with records and, if necessary, schema.

Gibt zurück

Die Anzahl der Zeilen erfolgreich hinzufügt bzw. darin aktualisiert die DataSet.The number of rows successfully added to or refreshed in the DataSet. Dies schließt keine Zeilen betroffen von Anweisungen, 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 aus der Datenquelle, die mithilfe einer SELECT-Anweisung ab.The Fill method retrieves the data from the data source using a SELECT statement. Die IDbConnection Objekt verknüpft ist, mit der select-Befehl muss gültig sein, aber es muss nicht geöffnet werden.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Wenn die IDbConnection wird geschlossen, bevor Fill wird aufgerufen, wird geöffnet, um Daten abzurufen und dann geschlossen.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Wenn die Verbindung vor dem Öffnen wird Fill ist aufgerufen wird, bleibt es geöffnet.If the connection is open before Fill is called, it remains open.

Wenn ein Fehler oder eine Ausnahme beim Füllen der Datentabellen auftritt, bleiben vor dem Auftreten des Fehlers hinzugefügte Zeilen 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 Rest der Vorgang wird abgebrochen.The remainder of the operation is aborted.

Wenn ein Befehl keine Zeilen zurückgibt, werden keine Tabellen hinzugefügt, um die 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", " Columnname3", und So weiter.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 Rückgabe der Abfrage in einer separaten Tabelle platziert.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 mit dem Namen durch Anhängen von ganzzahligen Werten auf dem angegebenen Tabellennamen (beispielsweise "Table", "Table1", "Table2" und So weiter).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, die keine Zeilen zurückgibt erstellt wird, wenn Sie eine Insert-Abfrage, gefolgt von einer select-Abfrage verarbeiten, heißt die Tabelle, die für die select-Abfrage erstellt, da es die erste Tabelle erstellt wird "Table".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 mithilfe von Spalten- und Tabellennamen sorgen dafür, dass verursacht einen Konflikt mit dem folgenden Benennungsmuster erfolgt nicht.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Wenn die SELECT-Anweisung zum Füllen der DataSet mehrere Ergebnisse zurückgibt, z. B. SQL-Anweisungen, wenn eines der Ergebnisse einen Fehler enthält, alle nachfolgenden Ergebnisse werden übersprungen und nicht hinzugefügt werden die DataSet.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.

Bei nachfolgenden Verwendung Fill Aufrufe zum Aktualisieren des Inhalts der DataSet, 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 zunächst zum Auffüllen verwendet entsprechen den DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Die Schlüssel Spalteninformationen muss vorhanden sein.The Key column information must be present.

Wenn ein Primärschlüssel vorhanden ist, alle doppelten Zeilen abgestimmt sind und nur einmal in der DataTable , entspricht die DataSet.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üsselinformationen kann festgelegt werden, entweder durch FillSchema, durch Angabe der PrimaryKey Eigenschaft der DataTable, oder durch Festlegen der MissingSchemaAction Eigenschaft AddWithKey.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben FillSchema für die .NET Framework-Datenanbieter für OLE DB Schemainformationen für nur 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. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill mit der MissingSchemaAction festgelegt AddWithKey.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Siehe auch

Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior) Fill(DataTable, IDbCommand, CommandBehavior)

Fügt hinzu oder aktualisiert Zeilen in einer DataTable entsprechend den in der Datenquelle, die mit dem angegebenen DataTable, IDbCommand und CommandBehavior.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 DataTable DataTable DataTable

Ein DataTable mit Datensätzen füllen und, falls erforderlich, Schema.A DataTable to fill with records and, if necessary, schema.

command
IDbCommand IDbCommand IDbCommand IDbCommand

Der SQL SELECT-Anweisung zum Abrufen von Zeilen aus der Datenquelle verwendet.The SQL SELECT statement used to retrieve rows from the data source.

Gibt zurück

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

Hinweise

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

Die Fill Vorgang dann fügt die Zeilen in das angegebene Ziel DataTable -Objekt in der DataSet, wodurch die DataTable Objekt, 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 einer DataTable -Objekt, das Fill -Vorgang wird normalerweise nur Spaltennamen-Metadaten erstellt.When creating a DataTable object, the Fill operation normally creates only column name metadata. Aber wenn die MissingSchemaAction -Eigenschaftensatz auf AddWithKey, entsprechenden primären Schlüsseln und Einschränkungen werden auch erstellt.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

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 ","Columnname3 ", und so weiter.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 Überladung von Fill akzeptiert DataTable wie ein Parameter nur das erste Ergebnis abruft.The overload of Fill that takes DataTable as a parameter only obtains the first result. Verwenden Sie eine Überladung der Fill akzeptiert DataSet als Parameter an mehrere Ergebnisse zu erhalten.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

Sie können die Fill -Methode mehrere Male auf der gleichen DataTable.You can use the Fill method multiple times on the same DataTable. Wenn ein Primärschlüssel vorhanden ist, werden die eingehende Zeilen mit übereinstimmenden Zeilen zusammengeführt, die bereits vorhanden.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 angehängt der DataTable.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 explizit definieren, dass den Primärschlüssel, 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ärschlüsseln.For more information, see Defining Primary Keys.

Hinweis

Bei der Behandlung von SQL-Anweisungen, die mehrere Ergebnisse, die Implementierung von zurückgeben FillSchema für die .NET Framework-Datenanbieter für OLE DB Schemainformationen für nur 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. Verwenden Sie zum Abrufen von Schemainformationen für mehrere Ergebnisse Fill mit der MissingSchemaAction festgelegt AddWithKey.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Hinweise für Vererber

Diese Überladung von der Fill(DataSet) Methode ist geschützt und durch einen .NET Framework-Datenanbieter für die Verwendung vorgesehen.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: