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

Définition

Remplit DataSet ou DataTable.Fills a DataSet or a DataTable.

Surcharges

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

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant DataSet et les noms de tables source, la chaîne de commande et le comportement des commandes.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour les faire correspondre à celles de la source de données en utilisant les noms DataSet, DataTable et IDataReader.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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[])

Ajoute ou actualise des lignes dans un DataTable pour établir une correspondance avec celles de la source de données en commençant à l'enregistrement spécifié et en récupérant le nombre maximal d'enregistrements spécifié.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données, en utilisant le nom DataTable.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)

Ajoute ou actualise les lignes d’un DataTable pour les faire correspondre dans la source de données en utilisant les noms DataTable et IDataReader spécifiés.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)

Ajoute ou actualise les lignes de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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)

Ajoute ou actualise des lignes dans le DataSet.Adds or refreshes rows in the DataSet.

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

Ajoute ou actualise les lignes de DataTable pour établir une correspondance avec celles de la source de données à l'aide des DataTable, IDbCommand et CommandBehavior spécifiés.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant DataSet et les noms de tables source, la chaîne de commande et le comportement des commandes.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

Paramètres

dataSet
DataSet DataSet DataSet DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

Numéro de l'enregistrement de base zéro par lequel commencer.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

Nombre maximal d'enregistrements à récupérer.The maximum number of records to retrieve.

srcTable
String String String String

Nom de la table source à utiliser pour le mappage de tables.The name of the source table to use for table mapping.

command
IDbCommand IDbCommand IDbCommand IDbCommand

Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.The SQL SELECT statement used to retrieve rows from the data source.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Exceptions

La table source n'est pas valide.The source table is invalid.

Le paramètre startRecord est inférieur à 0.The startRecord parameter is less than 0.

ou-or- Le paramètre maxRecords est inférieur à 0.The maxRecords parameter is less than 0.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT SelectCommand spécifiée par une propriété associée.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Si la connexion est fermée avant Fill l’appel de, elle est ouverte pour récupérer les données, puis fermée.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

L' Fill opération ajoute ensuite les lignes aux objets DataTable de destination dans DataSetle, en DataTable créant les objets s’ils n’existent pas déjà.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Lors de DataTable la création d' Fill objets, l’opération crée normalement uniquement des métadonnées de nom de colonne.When creating DataTable objects, the Fill operation normally creates only column name metadata. Toutefois, si la MissingSchemaAction propriété a la AddWithKeyvaleur, les clés primaires et les contraintes appropriées sont également créées.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Si le DbDataAdapter rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», etc.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Lorsque plusieurs jeux de résultats sont ajoutés à DataSet chaque jeu de résultats est placé dans une table distincte.When multiple result sets are added to the DataSet each result set is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

La Fill méthode prend en charge des DataSet scénarios où DataTable contient plusieurs objets dont les noms diffèrent uniquement par la casse.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Dans ce cas, Fill effectue une comparaison respectant la casse pour trouver la table correspondante, et crée une nouvelle table si aucune correspondance exacte n’existe.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Le code C# suivant illustre ce comportement.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".  

Si Fill est appelé et que DataSet contient uniquement un DataTable dont le nom diffère uniquement par la casse DataTable , ce qui est mis à jour.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Dans ce scénario, la comparaison ne respecte pas la casse.In this scenario, the comparison is case insensitive. Le code C# suivant illustre ce comportement.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.  

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable.You can use the Fill method multiple times on the same DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà.If a primary key exists, incoming rows are merged with matching rows that already exist. Si aucune clé primaire n’existe, les DataTablelignes entrantes sont ajoutées au.If no primary key exists, incoming rows are appended to the DataTable.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs Fill résultats FillSchema , l’implémentation de et pour un fournisseur de données .NET Framework récupère les informations de schéma uniquement pour le premier résultat.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.

Notes pour les héritiers

Cette surcharge de la Fill(DataSet) méthode est protégée et est conçue pour être utilisée par un fournisseur de données .NET Framework.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Voir aussi

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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

Paramètres

dataTables
DataTable[]

Objets DataTable à remplir à partir de la source de données.The DataTable objects to fill from the data source.

startRecord
Int32 Int32 Int32 Int32

Numéro de l'enregistrement de base zéro par lequel commencer.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

Nombre maximal d'enregistrements à récupérer.The maximum number of records to retrieve.

command
IDbCommand IDbCommand IDbCommand IDbCommand

IDbCommand exécuté pour remplir les objets DataTable.The IDbCommand executed to fill the DataTable objects.

Retours

Nombre de lignes ajoutées ou actualisées dans les tables de données.The number of rows added to or refreshed in the data tables.

Exceptions

La table source n'est pas valide.The source table is invalid.

ou-or- La connexion n'est pas valide.The connection is invalid.

La connexion est introuvable.The connection could not be found.

Le paramètre startRecord est inférieur à 0.The startRecord parameter is less than 0.

- ou --or- Le paramètre maxRecords est inférieur à 0.The maxRecords parameter is less than 0.

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début.A maxRecords value of 0 gets all records found after the start record. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned and no error is issued.

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT.The Fill method retrieves the data from the data source using a SELECT statement. L' IDbConnection objet associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Si le IDbConnection est fermé avant Fill l’appel de, il est ouvert pour récupérer des données, puis fermé.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée au DataSet, mais aucune exception n’est levée.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

Si l' DbDataAdapter objet rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte.When the query specified returns multiple results, each result set is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Étant donné qu’aucune table n’est créée pour une requête qui ne retourne pas de lignes, si vous deviez traiter une requête Insert suivie d’une requête SELECT, la table créée pour la requête SELECT serait nommée «table», car il s’agit de la première table créée.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. Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

La Fill méthode prend en charge des DataSet scénarios où DataTable contient plusieurs objets dont les noms diffèrent uniquement par la casse.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Dans ce cas, Fill effectue une comparaison respectant la casse pour trouver la table correspondante, et crée une nouvelle table si aucune correspondance exacte n’existe.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Le code C# suivant illustre ce comportement.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".  

Si Fill est appelé et que DataSet contient uniquement un DataTable dont le nom diffère uniquement par la casse DataTable , ce qui est mis à jour.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Dans ce scénario, la comparaison ne respecte pas la casse.In this scenario, the comparison is case insensitive. Le code C# suivant illustre ce comportement.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.  

Si une erreur ou une exception se produit lors du remplissage des tables de données, les lignes ajoutées avant l’occurrence de l’erreur restent dans les tables de données.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. Le reste de l’opération est abandonné.The remainder of the operation is aborted.

Lorsque l’instruction SELECT utilisée pour remplir les DataTable objets retourne plusieurs résultats, par exemple une instruction SQL par lot, tenez compte des éléments suivants:When the SELECT statement used to populate the DataTable objects returns multiple results, such as a batch SQL statement, be aware of the following:

  • Lors du traitement de plusieurs résultats à partir d’une maxRecords instruction SQL par lot, s’applique uniquement au premier résultat.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. Il en va de même pour les lignes contenant des résultats chapitre (.NET Framework Fournisseur de données pour OLE DB uniquement).The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Le résultat de niveau supérieur est limité maxRecordspar, mais toutes les lignes enfants sont ajoutées.The top level result is limited by maxRecords, but all child rows are added.

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés.If one of the results contains an error, all subsequent results are skipped.

Notes

Le DataSet ne contient pas plus que le nombre d’enregistrements indiqué par maxRecords.The DataSet will not contain more than the number of records indicated by maxRecords. Toutefois, l’ensemble du jeu de résultats généré par la requête est toujours retourné à partir du serveur.However, the entire resultset generated by the query is still returned from the server.

Notes pour les héritiers

Lors d’une Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode Fill(DataSet) de la classe de base.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Voir aussi

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

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour les faire correspondre à celles de la source de données en utilisant les noms DataSet, DataTable et IDataReader.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

Paramètres

dataSet
DataSet DataSet DataSet DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String String

Nom du DataTable à utiliser pour le mappage de tables.The name of the DataTable to use for table mapping.

startRecord
Int32 Int32 Int32 Int32

Numéro de l'enregistrement de base zéro par lequel commencer.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

Nombre maximal d'enregistrements à récupérer.The maximum number of records to retrieve.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.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)

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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

Paramètres

dataSet
DataSet DataSet DataSet DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.A DataSet to fill with records and, if necessary, schema.

startRecord
Int32 Int32 Int32 Int32

Numéro de l'enregistrement de base zéro par lequel commencer.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

Nombre maximal d'enregistrements à récupérer.The maximum number of records to retrieve.

srcTable
String String String String

Nom de la table source à utiliser pour le mappage de tables.The name of the source table to use for table mapping.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Exceptions

La table source n'est pas valide.The source table is invalid.

- ou --or- La connexion n'est pas valide.The connection is invalid.

La connexion est introuvable.The connection could not be found.

Le paramètre startRecord est inférieur à 0.The startRecord parameter is less than 0.

- ou --or- Le paramètre maxRecords est inférieur à 0.The maxRecords parameter is less than 0.

Exemples

L’exemple suivant utilise la classe dérivée OleDbDataAdapter,, pour remplir DataSet un avec 15 lignes, en commençant à la ligne 10 **** , à partir de la table categories.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with 15 rows, beginning at row 10, from the Categories table. Cet exemple suppose que vous avez créé un OleDbDataAdapter et un. DataSetThis 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

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début.A maxRecords value of 0 gets all records found after the start record. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.If maxRecords is greater than the number of remaining rows, only the remaining rows are returned, and no error is issued.

Si la commande SELECT correspondante est une instruction qui retourne plusieurs résultats Fill , s' maxRecords applique uniquement au premier résultat.If the corresponding select command is a statement returning multiple results, Fill only applies maxRecords to the first result.

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT.The Fill method retrieves the data from the data source using a SELECT statement. L' IDbConnection objet associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The IDbConnection object associated with the SELECT statement must be valid, but it does not need to be open. Si le IDbConnection est fermé avant Fill l’appel de, il est ouvert pour récupérer les données, puis fermé.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée au DataSet, mais aucune exception n’est levée.If a command does not return any rows, no tables are added to the DataSet, but no exception is raised.

Si l' DbDataAdapter objet rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte.When the query specified returns multiple results, each result set is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Étant donné qu’aucune table n’est créée pour une requête qui ne retourne pas de lignes, si vous traitez une requête Insert suivie d’une requête SELECT, la table créée pour la requête SELECT est nommée «table», car il s’agit de la première table créée.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. Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

La Fill méthode prend en charge des DataSet scénarios où DataTable contient plusieurs objets dont les noms diffèrent uniquement par la casse.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Dans ce cas, Fill effectue une comparaison respectant la casse pour trouver la table correspondante, et crée une nouvelle table si aucune correspondance exacte n’existe.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Le code C# suivant illustre ce comportement.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".  

Si Fill est appelé et que DataSet contient uniquement un DataTable dont le nom diffère uniquement par la casse DataTable , ce qui est mis à jour.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Dans ce scénario, la comparaison ne respecte pas la casse.In this scenario, the comparison is case insensitive. Le code C# suivant illustre ce comportement.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.  

Si une erreur ou une exception se produit lors du remplissage des tables de données, les lignes ajoutées avant l’occurrence de l’erreur restent dans les tables de données.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. Le reste de l’opération est abandonné.The remainder of the operation is aborted.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, comme les instructions SQL par lots, tenez compte des éléments suivants:When the SELECT statement used to populate the DataSet returns multiple results, such as batch SQL statements, be aware of the following:

  • Lors du traitement de plusieurs résultats à partir d’une maxRecords instruction SQL par lot, s’applique uniquement au premier résultat.When processing multiple results from a batch SQL statement, maxRecords only applies to the first result. Il en va de même pour les lignes contenant des résultats chapitre (.NET Framework Fournisseur de données pour OLE DB uniquement).The same is true for rows containing chaptered results (.NET Framework Data Provider for OLE DB only). Le résultat de niveau supérieur est limité maxRecordspar, mais toutes les lignes enfants sont ajoutées.The top level result is limited by maxRecords, but all child rows are added.

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et n’ont pas DataSetété ajoutés à.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Lorsque vous utilisez Fill DataSetdes appels suivants pour actualiser le contenu du, deux conditions doivent être remplies:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Les informations sur les colonnes clés doivent être présentes.The Key column information must be present.

Si des informations de clé primaire sont présentes, toutes les lignes en double sont conciliées et n’apparaissent DataTable qu’une seule fois DataSetdans le qui correspond à.If primary key information is present, any duplicate rows will be reconciled and only appear once in the DataTable that corresponds to the DataSet. Les informations de clé primaire peuvent être définies FillSchemapar le biais de PrimaryKey , en spécifiant la propriété du DataTableou MissingSchemaAction en affectant à AddWithKeyla propriété la valeur.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.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs FillSchema résultats, l’implémentation de pour le .NET Framework fournisseur de données pour OLE DB récupère les informations de schéma uniquement pour le premier résultat.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. Pour récupérer des informations de schéma pour plusieurs résultats Fill , utilisez MissingSchemaAction avec le AddWithKeydéfini sur.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Notes

Le DataSet ne contient pas plus que le nombre d’enregistrements indiqué par maxRecords.The DataSet will not contain more than the number of records indicated by maxRecords. Toutefois, l’ensemble du jeu de résultats généré par la requête est toujours retourné à partir du serveur.However, the entire result set generated by the query is still returned from the server.

Notes pour les héritiers

Lors d’une Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode Fill(DataSet) de la classe de base.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Voir aussi

Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[]) Fill(Int32, Int32, DataTable[])

Ajoute ou actualise des lignes dans un DataTable pour établir une correspondance avec celles de la source de données en commençant à l'enregistrement spécifié et en récupérant le nombre maximal d'enregistrements spécifié.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

Paramètres

startRecord
Int32 Int32 Int32 Int32

Numéro de l'enregistrement de base zéro par lequel commencer.The zero-based record number to start with.

maxRecords
Int32 Int32 Int32 Int32

Nombre maximal d'enregistrements à récupérer.The maximum number of records to retrieve.

dataTables
DataTable[]

Objets DataTable à remplir à partir de la source de données.The DataTable objects to fill from the data source.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataTable.The number of rows successfully added to or refreshed in the DataTable. Cette valeur n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This value does not include rows affected by statements that do not return rows.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT SelectCommand spécifiée par une propriété associée.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Si la connexion est fermée avant Fill l’appel de, elle est ouverte pour récupérer les données, puis fermée.If the connection is closed before Fill is called, it is opened to retrieve data, and then it is closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

L' Fill opération ajoute ensuite les lignes aux objets DataTable de destination dans DataSetle, en DataTable créant les objets s’ils n’existent pas déjà.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Lors de DataTable la création d' Fill objets, l’opération crée normalement uniquement des métadonnées de nom de colonne.When creating DataTable objects, the Fill operation normally creates only column name metadata. Toutefois, si la MissingSchemaAction propriété a la AddWithKeyvaleur, les clés primaires et les contraintes appropriées sont également créées.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Si l’adaptateur de données rencontre des colonnes dupliquées lors du DataTableremplissage d’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «nomcolonne1», «nomcolonne2», «columnname3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Lorsque plusieurs jeux de résultats sont ajoutés au DataSet, chaque jeu de résultats est placé dans une table distincte.When multiple result sets are added to the DataSet, each result set is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, comme des instructions SQL par lots, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont pas DataSetajoutés au.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.

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable.You can use the Fill method multiple times on the same DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà.If a primary key exists, incoming rows are merged with matching rows that already exist. Si aucune clé primaire n’existe, les DataTablelignes entrantes sont ajoutées au.If no primary key exists, incoming rows are appended to the DataTable.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs FillSchema résultats, l’implémentation de pour le .NET Framework fournisseur de données pour OLE DB récupère les informations de schéma uniquement pour le premier résultat.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. Pour récupérer des informations de schéma pour plusieurs résultats Fill , utilisez MissingSchemaAction avec le AddWithKeydéfini sur.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Voir aussi

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

Ajoute ou actualise des lignes dans une plage spécifiée de DataSet pour qu'elles correspondent à celles de la source de données, en utilisant le nom DataTable.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

Paramètres

dataTable
DataTable DataTable DataTable DataTable

Nom du DataTable à utiliser pour le mappage de tables.The name of the DataTable to use for table mapping.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Exceptions

La table source n'est pas valide.The source table is invalid.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT SelectCommand spécifiée par une propriété associée.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Si la connexion est fermée avant Fill l’appel de, elle est ouverte pour récupérer les données, puis fermée.If the connection is closed before Fill is called, it is opened to retrieve data, then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

L' Fill opération ajoute ensuite les lignes aux objets DataTable de destination dans DataSetle, en DataTable créant les objets s’ils n’existent pas déjà.The Fill operation then adds the rows to destination DataTable objects in the DataSet, creating the DataTable objects if they do not already exist. Lors de DataTable la création d' Fill objets, l’opération crée normalement uniquement des métadonnées de nom de colonne.When creating DataTable objects, the Fill operation normally creates only column name metadata. Toutefois, si la MissingSchemaAction propriété a la AddWithKeyvaleur, les clés primaires et les contraintes appropriées sont également créées.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Si le DbDataAdapter rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», etc.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Lorsque plusieurs jeux de résultats sont ajoutés à DataSet chaque jeu de résultats est placé dans une table distincte.When multiple result sets are added to the DataSet each result set is placed in a separate table.

La surcharge de Fill qui prend DataTable comme paramètre obtient uniquement le premier résultat.The overload of Fill that takes DataTable as a parameter only obtains the first result. Utilisez une surcharge de Fill qui prend DataSet comme paramètre pour obtenir plusieurs résultats.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

La Fill méthode prend en charge des DataSet scénarios où DataTable contient plusieurs objets dont les noms diffèrent uniquement par la casse.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Dans ce cas, Fill effectue une comparaison respectant la casse pour trouver la table correspondante, et crée une nouvelle table si aucune correspondance exacte n’existe.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Le code C# suivant illustre ce comportement.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".  

Si Fill est appelé et que DataSet contient uniquement un DataTable dont le nom diffère uniquement par la casse DataTable , ce qui est mis à jour.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Dans ce scénario, la comparaison ne respecte pas la casse.In this scenario, the comparison is case insensitive. Le code C# suivant illustre ce comportement.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.  

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable.You can use the Fill method multiple times on the same DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà.If a primary key exists, incoming rows are merged with matching rows that already exist. Si aucune clé primaire n’existe, les DataTablelignes entrantes sont ajoutées au.If no primary key exists, incoming rows are appended to the DataTable.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs Fill résultats FillSchema , l’implémentation de et pour un fournisseur de données .NET Framework récupère les informations de schéma uniquement pour le premier résultat.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.

Notes pour les héritiers

Cette surcharge de la Fill(DataSet) méthode est protégée et est conçue pour être utilisée par un fournisseur de données .NET Framework.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Voir aussi

Fill(DataTable, IDataReader) Fill(DataTable, IDataReader) Fill(DataTable, IDataReader)

Ajoute ou actualise les lignes d’un DataTable pour les faire correspondre dans la source de données en utilisant les noms DataTable et IDataReader spécifiés.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

Paramètres

dataTable
DataTable DataTable DataTable DataTable

DataTable à remplir avec des enregistrements et, éventuellement, un schéma.A DataTable to fill with records and, if necessary, schema.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataTable.The number of rows successfully added to or refreshed in the DataTable. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

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

Ajoute ou actualise les lignes de DataSet pour qu'elles correspondent à celles de la source de données en utilisant les noms DataSet et DataTable.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

Paramètres

dataSet
DataSet DataSet DataSet DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.A DataSet to fill with records and, if necessary, schema.

srcTable
String String String String

Nom de la table source à utiliser pour le mappage de tables.The name of the source table to use for table mapping.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Exceptions

La table source n'est pas valide.The source table is invalid.

Exemples

L’exemple suivant utilise la classe dérivée OleDbDataAdapter,, pour remplir DataSet un avec des lignes de la table categories.The following example uses the derived class, OleDbDataAdapter, to fill a DataSet with rows from the categories table. Cet exemple suppose que vous avez créé un OleDbDataAdapter et un. DataSetThis 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

Remarques

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT.The Fill method retrieves the data from the data source using a SELECT statement. L' IDbConnection objet associé à la commande SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Si le IDbConnection est fermé avant Fill l’appel de, il est ouvert pour récupérer des données, puis fermé.If the IDbConnection is closed before Fill is called, it is opened to retrieve data, then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée au DataSetet aucune exception n’est levée.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

Si l' DbDataAdapter objet rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «nomcolonne1», «nomcolonne2», «columnname3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte.When the query specified returns multiple results, each result set is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Étant donné qu’aucune table n’est créée pour une requête qui ne retourne pas de lignes, si vous deviez traiter une requête Insert suivie d’une requête SELECT, la table créée pour la requête SELECT serait nommée «table», car il s’agit de la première table créée.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. Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

La Fill méthode prend en charge des DataSet scénarios où DataTable contient plusieurs objets dont les noms diffèrent uniquement par la casse.The Fill method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Dans ce cas, Fill effectue une comparaison respectant la casse pour trouver la table correspondante, et crée une nouvelle table si aucune correspondance exacte n’existe.In such situations, Fill performs a case-sensitive comparison to find the corresponding table, and creates a new table if no exact match exists. Le code C# suivant illustre ce comportement.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".  

Si Fill est appelé et que DataSet contient uniquement un DataTable dont le nom diffère uniquement par la casse DataTable , ce qui est mis à jour.If Fill is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Dans ce scénario, la comparaison ne respecte pas la casse.In this scenario, the comparison is case insensitive. Le code C# suivant illustre ce comportement.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.  

Si une erreur ou une exception se produit lors du remplissage des tables de données, les lignes ajoutées avant l’occurrence de l’erreur restent dans les tables de données.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. Le reste de l’opération est abandonné.The remainder of the operation is aborted.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, par exemple une instruction SQL par lot, tenez compte des éléments suivants:When the SELECT statement used to populate the DataSet returns multiple results, such as a batch SQL statement, be aware of the following:

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et n’ont pas DataSetété ajoutés à.If one of the results contains an error, all subsequent results are skipped and not added to the DataSet.

Lorsque vous utilisez Fill DataSetdes appels suivants pour actualiser le contenu du, deux conditions doivent être remplies:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Les informations sur les colonnes clés doivent être présentes.The Key column information must be present. Si des informations de clé primaire sont présentes, toutes les lignes en double sont conciliées et n' DataTable apparaissent qu’une seule DataSetfois dans le qui correspond à.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. Les informations de clé primaire peuvent être définies FillSchemapar le biais de PrimaryKey , en spécifiant la propriété du DataTableou MissingSchemaAction en affectant à AddWithKeyla propriété la valeur.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.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs FillSchema résultats, l’implémentation de pour le .NET Framework fournisseur de données pour OLE DB récupère les informations de schéma uniquement pour le premier résultat.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. Pour récupérer des informations de schéma pour plusieurs résultats Fill , utilisez MissingSchemaAction avec le AddWithKeydéfini sur.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Notes pour les héritiers

Lors d’une Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode Fill(DataSet) de la classe de base.When overriding Fill(DataSet) in a derived class, be sure to call the base class's Fill(DataSet) method.

Voir aussi

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

Ajoute ou actualise des lignes dans le 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

Paramètres

dataSet
DataSet DataSet DataSet DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.A DataSet to fill with records and, if necessary, schema.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet.The number of rows successfully added to or refreshed in the DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Implémente

Remarques

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT.The Fill method retrieves the data from the data source using a SELECT statement. L' IDbConnection objet associé à la commande SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The IDbConnection object associated with the select command must be valid, but it does not need to be open. Si le IDbConnection est fermé avant Fill l’appel de, il est ouvert pour récupérer les données, puis fermé.If the IDbConnection is closed before Fill is called, it is opened to retrieve data and then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

Si une erreur ou une exception se produit lors du remplissage des tables de données, les lignes ajoutées avant l’occurrence de l’erreur restent dans les tables de données.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. Le reste de l’opération est abandonné.The remainder of the operation is aborted.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée au DataSetet aucune exception n’est levée.If a command does not return any rows, no tables are added to the DataSet, and no exception is raised.

Si l' DbDataAdapter objet rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

Lorsque la requête spécifiée retourne plusieurs résultats, le jeu de résultats pour chaque ligne qui retourne une requête est placé dans une table distincte.When the query specified returns multiple results, the result set for each row returning query is placed in a separate table. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, «table», «Table1», «Table2», etc.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Étant donné qu’aucune table n’est créée pour une requête qui ne retourne pas de lignes, si vous traitez une requête Insert suivie d’une requête SELECT, la table créée pour la requête SELECT est nommée «table», car il s’agit de la première table créée.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. Les applications qui utilisent des noms de colonnes et de tables doivent s’assurer que les conflits avec ces modèles de nommage ne se produisent pas.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, tels que des instructions SQL par lots, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont DataSetpas ajoutés au.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.

Lorsque vous utilisez Fill DataSetdes appels suivants pour actualiser le contenu du, deux conditions doivent être remplies:When using subsequent Fill calls to refresh the contents of the DataSet, two conditions must be met:

  1. L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSet.The SQL statement should match the one initially used to populate the DataSet.

  2. Les informations sur les colonnes clés doivent être présentes.The Key column information must be present.

Si des informations de clé primaire sont présentes, toutes les lignes en double sont conciliées et n' DataTable apparaissent qu’une seule DataSetfois dans le qui correspond à.If primary key information is present, any duplicate rows are reconciled and only appear once in the DataTable that corresponds to the DataSet. Les informations de clé primaire peuvent être définies FillSchemapar le biais de PrimaryKey , en spécifiant la propriété du DataTableou MissingSchemaAction en affectant à AddWithKeyla propriété la valeur.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.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs FillSchema résultats, l’implémentation de pour le .NET Framework fournisseur de données pour OLE DB récupère les informations de schéma uniquement pour le premier résultat.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. Pour récupérer des informations de schéma pour plusieurs résultats Fill , utilisez MissingSchemaAction avec le AddWithKeydéfini sur.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Voir aussi

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

Ajoute ou actualise les lignes de DataTable pour établir une correspondance avec celles de la source de données à l'aide des DataTable, IDbCommand et CommandBehavior spécifiés.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

Paramètres

dataTable
DataTable DataTable DataTable DataTable

DataTable à remplir avec des enregistrements et, éventuellement, un schéma.A DataTable to fill with records and, if necessary, schema.

command
IDbCommand IDbCommand IDbCommand IDbCommand

Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.The SQL SELECT statement used to retrieve rows from the data source.

behavior
CommandBehavior CommandBehavior CommandBehavior CommandBehavior

Une des valeurs de l'objet CommandBehavior.One of the CommandBehavior values.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataTable.The number of rows successfully added to or refreshed in the DataTable. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.This does not include rows affected by statements that do not return rows.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT SelectCommand spécifiée par une propriété associée.The Fill method retrieves rows from the data source using the SELECT statement specified by an associated SelectCommand property. L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’est pas nécessaire qu’il soit ouvert.The connection object associated with the SELECT statement must be valid, but it does not need to be open. Si la connexion est fermée avant Fill l’appel de, elle est ouverte pour récupérer les données, puis fermée.If the connection is closed before Fill is called, it is opened to retrieve data and then closed. Si la connexion est ouverte avant Fill que ne soit appelée, elle reste ouverte.If the connection is open before Fill is called, it remains open.

L' Fill opération ajoute ensuite les lignes à l’objet de DataTable destination spécifié dans DataSetle, en DataTable créant l’objet s’il n’existe pas déjà.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. Lors de la DataTable création d’un Fill objet, l’opération crée normalement uniquement des métadonnées de nom de colonne.When creating a DataTable object, the Fill operation normally creates only column name metadata. Toutefois, si la MissingSchemaAction propriété a la AddWithKeyvaleur, les clés primaires et les contraintes appropriées sont également créées.However, if the MissingSchemaAction property is set to AddWithKey, appropriate primary keys and constraints are also created.

Si l' DbDataAdapter objet rencontre des colonnes dupliquées lors du remplissage DataTabled’un, il génère des noms pour les colonnes suivantes, à l’aide du modèle «ColumnName1», «ColumnName2», «ColumnName3», et ainsi de suite.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. Si les données entrantes contiennent des colonnes sans nom, elles sont placées DataSet dans en fonction du modèle «Column1», «Column2», et ainsi de suite.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on.

La surcharge de Fill qui prend DataTable comme paramètre obtient uniquement le premier résultat.The overload of Fill that takes DataTable as a parameter only obtains the first result. Utilisez une surcharge de Fill qui prend DataSet comme paramètre pour obtenir plusieurs résultats.Use an overload of Fill that takes DataSet as a parameter to obtain multiple results.

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable.You can use the Fill method multiple times on the same DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà.If a primary key exists, incoming rows are merged with matching rows that already exist. Si aucune clé primaire n’existe, les DataTablelignes entrantes sont ajoutées au.If no primary key exists, incoming rows are appended to the DataTable.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu.If the SelectCommand returns the results of an OUTER JOIN, the DataAdapter does not set a PrimaryKey value for the resulting DataTable. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes dupliquées sont correctement résolues.You must explicitly define the primary key to ensure that duplicate rows are resolved correctly. Pour plus d’informations, consultez définition des clés primaires.For more information, see Defining Primary Keys.

Notes

Lors du traitement d’instructions SQL par lots qui retournent plusieurs FillSchema résultats, l’implémentation de pour le .NET Framework fournisseur de données pour OLE DB récupère les informations de schéma uniquement pour le premier résultat.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. Pour récupérer des informations de schéma pour plusieurs résultats Fill , utilisez MissingSchemaAction avec le AddWithKeydéfini sur.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Notes pour les héritiers

Cette surcharge de la Fill(DataSet) méthode est protégée et est conçue pour être utilisée par un fournisseur de données .NET Framework.This overload of the Fill(DataSet) method is protected and is designed for use by a .NET Framework data provider.

Voir aussi

S’applique à