DbDataAdapter.Fill Méthode

Définition

Remplit DataSet ou DataTable.

Surcharges

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.

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.

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.

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.

Fill(Int32, Int32, DataTable[])

Ajoute ou actualise les lignes d’un ou plusieurs DataTable objets pour qu’elles correspondent à celles de la source de données en commençant à l’enregistrement spécifié et en récupérant jusqu’au nombre maximal d’enregistrements spécifié.

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.

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.

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.

Fill(DataSet)

Ajoute ou actualise des lignes dans le DataSet.

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.

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.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

Paramètres

dataSet
DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

startRecord
Int32

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords
Int32

Nombre maximal d'enregistrements à récupérer. Spécifiez 0 pour récupérer tous les enregistrements après l’enregistrement de début.

srcTable
String

Le nom de la table source à utiliser pour le mappage de table.

command
IDbCommand

Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.

behavior
CommandBehavior

Une des valeurs de l'objet CommandBehavior.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

La table source n'est pas valide.

Le paramètre startRecord est inférieur à 0.

- ou -

Le paramètre maxRecords est inférieur à 0.

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT spécifiée par une propriété associée SelectCommand . L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si la connexion est fermée avant Fill d’être appelée, elle est ouverte pour récupérer des données, puis fermée. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

L’opération Fill ajoute ensuite les lignes aux objets de destination DataTable dans , DataSeten créant les DataTable objets s’ils n’existent pas déjà. Lors de la création d’objets DataTable , l’opération Fill crée normalement uniquement des métadonnées de nom de colonne. Toutefois, si la MissingSchemaAction propriété est définie sur AddWithKey, les clés primaires et les contraintes appropriées sont également créées.

Si le DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc. Lorsque plusieurs jeux de résultats sont ajoutés au DataSet jeu de résultats, chaque jeu de résultats est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

La Fill méthode prend en charge les scénarios où contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par la casse. Dans de telles situations, Fill effectue une comparaison respectant la casse pour rechercher la table correspondante et crée une table si aucune correspondance exacte n’existe. Le code C# suivant illustre ce comportement.

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 ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par la casse, cela DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

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. S’il existe une clé primaire, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà. S’il n’existe aucune clé primaire, les lignes entrantes sont ajoutées à .DataTable

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation de et FillSchema pour un fournisseur de Fill données .NET Framework récupère les informations de schéma uniquement pour le premier résultat.

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.

Voir aussi

S’applique à

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.

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.

startRecord
Int32

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords
Int32

Nombre maximal d'enregistrements à récupérer. Spécifiez 0 pour récupérer tous les enregistrements après l’enregistrement de début.

command
IDbCommand

IDbCommand exécuté pour remplir les objets DataTable.

behavior
CommandBehavior

Une des valeurs de l'objet CommandBehavior.

Retours

Nombre de lignes ajoutées ou actualisées dans les tables de données.

Exceptions

DataSet n'est pas valide.

La table source n'est pas valide.

- ou -

La connexion n'est pas valide.

La connexion est introuvable.

Le paramètre startRecord est inférieur à 0.

- ou -

Le paramètre maxRecords est inférieur à 0.

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT. L’objet IDbConnection associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si est fermé avant Fill d’être appelé, il est ouvert pour récupérer des IDbConnection données, puis fermé. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée à , DataSetmais aucune exception n’est levée.

Si l’objet DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). É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 d’insertion 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. Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

La Fill méthode prend en charge les scénarios où contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par la casse. Dans de telles situations, Fill effectue une comparaison respectant la casse pour rechercher la table correspondante et crée une table si aucune correspondance exacte n’existe. Le code C# suivant illustre ce comportement.

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 ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par la casse, cela DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

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 est rencontrée 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. Le reste de l’opération est abandonné.

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 :

  • Lors du traitement de plusieurs résultats à partir d’une instruction SQL batch, maxRecords s’applique uniquement au premier résultat. Il en va de même pour les lignes contenant des résultats chapitrenés (fournisseur de données .NET Framework pour OLE DB uniquement). Le résultat de niveau supérieur est limité par maxRecords, mais toutes les lignes enfants sont ajoutées.

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés.

Notes

Le DataSet ne contient pas plus que le nombre d’enregistrements indiqué par maxRecords. Toutefois, l’ensemble de résultats entier généré par la requête est toujours retourné à partir du serveur.

Notes pour les héritiers

Lors de la Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode de la classe de Fill(DataSet) base.

Voir aussi

S’applique à

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.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

Paramètres

dataSet
DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

srcTable
String

Nom du DataTable à utiliser pour le mappage de tables.

dataReader
IDataReader

Nom de l'objet IDataReader.

startRecord
Int32

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords
Int32

Nombre maximal d'enregistrements à récupérer. Spécifiez 0 pour récupérer tous les enregistrements après l’enregistrement de début.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

startRecord est inférieur à 0.

- ou -

maxRecords est inférieur à 0.

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.

S’applique à

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.

public:
 int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer

Paramètres

dataSet
DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

startRecord
Int32

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords
Int32

Nombre maximal d'enregistrements à récupérer. Spécifiez 0 pour récupérer tous les enregistrements après l’enregistrement de début.

srcTable
String

Le nom de la table source à utiliser pour le mappage de table.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

DataSet n'est pas valide.

La table source n'est pas valide.

- ou -

La connexion n'est pas valide.

La connexion est introuvable.

Le paramètre startRecord est inférieur à 0.

- ou -

Le paramètre maxRecords est inférieur à 0.

Exemples

L’exemple suivant utilise la classe dérivée, OleDbDataAdapter, pour remplir un DataSet avec 15 lignes, en commençant à la ligne 10, à partir de la table Categories . Cet exemple suppose que vous avez créé un OleDbDataAdapter et un 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. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.

Si la commande select correspondante est une instruction qui retourne plusieurs résultats, Fill s’applique maxRecords uniquement au premier résultat.

La Fill méthode récupère les données de la source de données à l’aide d’une instruction SELECT. L’objet IDbConnection associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si est fermé avant Fill d’être appelé, il est ouvert pour récupérer des IDbConnection données, puis fermé. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée à , DataSetmais aucune exception n’est levée.

Si l’objet DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). É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. Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

La Fill méthode prend en charge les scénarios où contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par la casse. Dans de telles situations, Fill effectue une comparaison respectant la casse pour rechercher la table correspondante et crée une table si aucune correspondance exacte n’existe. Le code C# suivant illustre ce comportement.

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 ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par la casse, cela DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

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 est rencontrée 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. Le reste de l’opération est abandonné.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, tels que des instructions SQL par lot, tenez compte des éléments suivants :

  • Lors du traitement de plusieurs résultats à partir d’une instruction SQL batch, maxRecords s’applique uniquement au premier résultat. Il en va de même pour les lignes contenant des résultats chapitrenés (fournisseur de données .NET Framework pour OLE DB uniquement). Le résultat de niveau supérieur est limité par maxRecords, mais toutes les lignes enfants sont ajoutées.

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont pas ajoutés à .DataSet

Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :

  1. L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.

  2. Les informations de colonne clé doivent être présentes.

Si des informations sur la clé primaire sont présentes, toutes les lignes en double sont rapprochées et n’apparaissent qu’une seule fois dans qui DataTable correspond à .DataSet Les informations sur la clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTable, ou en affectant à AddWithKeyla propriété la MissingSchemaAction valeur .

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL par lot qui retournent plusieurs résultats, l’implémentation de pour le fournisseur de FillSchema données .NET Framework pour OLE DB récupère les informations de schéma uniquement pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill avec la MissingSchemaAction valeur définie sur AddWithKey.

Notes

Le DataSet ne contient pas plus que le nombre d’enregistrements indiqué par maxRecords. Toutefois, l’ensemble du jeu de résultats généré par la requête est toujours retourné à partir du serveur.

Notes pour les héritiers

Lors de la Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode de la classe de Fill(DataSet) base.

Voir aussi

S’applique à

Fill(Int32, Int32, DataTable[])

Ajoute ou actualise les lignes d’un ou plusieurs DataTable objets pour qu’elles correspondent à celles de la source de données en commençant à l’enregistrement spécifié et en récupérant jusqu’au nombre maximal d’enregistrements spécifié.

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

Numéro de l'enregistrement de base zéro par lequel commencer.

maxRecords
Int32

Nombre maximal d'enregistrements à récupérer. Spécifiez 0 pour récupérer tous les enregistrements après l’enregistrement de début.

dataTables
DataTable[]

Objets DataTable à remplir à partir de la source de données.

Retours

Nombre de lignes ajoutées ou actualisées dans les DataTable objets. Cette valeur n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

dataTables est null ou un tableau vide.

startRecord est inférieur à 0.

- ou -

maxRecords est inférieur à 0.

Remarques

La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords est supérieur au nombre de lignes restantes, seules les lignes restantes sont retournées et aucune erreur n’est émise.

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT spécifiée par une propriété associée SelectCommand . L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si la connexion est fermée avant Fill d’être appelée, elle est ouverte pour récupérer des données, puis elle est fermée. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

L’opération Fill ajoute ensuite les lignes aux objets de destination DataTable dans , DataSeten créant les DataTable objets s’ils n’existent pas déjà. Lors de la création d’objets DataTable , l’opération Fill crée normalement uniquement des métadonnées de nom de colonne. Toutefois, si la MissingSchemaAction propriété est définie sur AddWithKey, les clés primaires et les contraintes appropriées sont également créées.

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Si l’adaptateur de données rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc. Lorsque plusieurs jeux de résultats sont ajoutés à , DataSetchaque jeu de résultats est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, tels qu’un lot d’instructions SQL, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et non ajoutés à .DataSet

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable. S’il existe une clé primaire, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà. S’il n’existe aucune clé primaire, les lignes entrantes sont ajoutées à .DataTable

Notes

Lors de la gestion des instructions SQL par lot qui retournent plusieurs résultats, l’implémentation de pour le fournisseur de FillSchema données .NET Framework pour OLE DB récupère les informations de schéma uniquement pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill avec la MissingSchemaAction valeur définie sur AddWithKey.

Voir aussi

S’applique à

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.

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

Paramètres

dataTable
DataTable

Nom du DataTable à utiliser pour le mappage de tables.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

La table source n'est pas valide.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT spécifiée par une propriété associée SelectCommand . L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si la connexion est fermée avant Fill d’être appelée, elle est ouverte pour récupérer des données, puis fermée. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

L’opération Fill ajoute ensuite les lignes aux objets de destination DataTable dans , DataSeten créant les DataTable objets s’ils n’existent pas déjà. Lors de la création d’objets DataTable , l’opération Fill crée normalement uniquement des métadonnées de nom de colonne. Toutefois, si la MissingSchemaAction propriété est définie sur AddWithKey, les clés primaires et les contraintes appropriées sont également créées.

Si le DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc. Lorsque plusieurs jeux de résultats sont ajoutés au DataSet jeu de résultats, chaque jeu de résultats est placé dans une table distincte.

La surcharge de Fill qui prend DataTable comme paramètre obtient uniquement le premier résultat. Utilisez une surcharge de Fill qui prend DataSet comme paramètre pour obtenir plusieurs résultats.

La Fill méthode prend en charge les scénarios où contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par la casse. Dans de telles situations, Fill effectue une comparaison respectant la casse pour rechercher la table correspondante et crée une table si aucune correspondance exacte n’existe. Le code C# suivant illustre ce comportement.

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 ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par la casse, cela DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

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. S’il existe une clé primaire, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà. S’il n’existe aucune clé primaire, les lignes entrantes sont ajoutées à .DataTable

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation de et FillSchema pour un fournisseur de Fill données .NET Framework récupère les informations de schéma uniquement pour le premier résultat.

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.

Voir aussi

S’applique à

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.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

Paramètres

dataTable
DataTable

DataTable à remplir avec des enregistrements et, éventuellement, un schéma.

dataReader
IDataReader

Nom de l'objet IDataReader.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataTable. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

S’applique à

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.

public:
 int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer

Paramètres

dataSet
DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

srcTable
String

Le nom de la table source à utiliser pour le mappage de table.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Exceptions

La table source n'est pas valide.

Exemples

L’exemple suivant utilise la classe dérivée, OleDbDataAdapter, pour remplir un DataSet avec des lignes de la table categories. Cet exemple suppose que vous avez créé un OleDbDataAdapter et un 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. L’objet IDbConnection associé à la commande select doit être valide, mais il n’a pas besoin d’être ouvert. Si est fermé avant Fill d’être appelé, il est ouvert pour récupérer des IDbConnection données, puis fermé. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée à et DataSetaucune exception n’est levée.

Si l’objet DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc.

Lorsque la requête spécifiée retourne plusieurs résultats, chaque jeu de résultats est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). É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 d’insertion 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. Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

La Fill méthode prend en charge les scénarios où contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par la casse. Dans de telles situations, Fill effectue une comparaison respectant la casse pour rechercher la table correspondante et crée une table si aucune correspondance exacte n’existe. Le code C# suivant illustre ce comportement.

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 ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par la casse, cela DataTable est mis à jour. Dans ce scénario, la comparaison ne respecte pas la casse. Le code C# suivant illustre ce comportement.

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 est rencontrée 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. Le reste de l’opération est abandonné.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, tels qu’une instruction SQL par lot, tenez compte des éléments suivants :

  • Si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont pas ajoutés à .DataSet

Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :

  1. L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.

  2. Les informations de colonne clé doivent être présentes. Si des informations de clé primaire sont présentes, toutes les lignes en double sont rapprochées et n’apparaissent qu’une seule fois dans qui DataTable correspond à .DataSet Les informations sur la clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTable, ou en affectant à AddWithKeyla propriété la MissingSchemaAction valeur .

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL par lot qui retournent plusieurs résultats, l’implémentation de pour le fournisseur de FillSchema données .NET Framework pour OLE DB récupère les informations de schéma uniquement pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill avec la MissingSchemaAction valeur définie sur AddWithKey.

Notes pour les héritiers

Lors de la Fill(DataSet) substitution dans une classe dérivée, veillez à appeler la méthode de la classe de Fill(DataSet) base.

Voir aussi

S’applique à

Fill(DataSet)

Ajoute ou actualise des lignes dans le DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer

Paramètres

dataSet
DataSet

DataSet à remplir avec des enregistrements et, éventuellement, un schéma.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataSet. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

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. L’objet IDbConnection associé à la commande select doit être valide, mais il n’a pas besoin d’être ouvert. Si est fermé avant Fill d’être appelé, il est ouvert pour récupérer des IDbConnection données, puis fermé. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

Si une erreur ou une exception est rencontrée 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. Le reste de l’opération est abandonné.

Si une commande ne retourne aucune ligne, aucune table n’est ajoutée à et DataSetaucune exception n’est levée.

Si l’objet DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc.

Lorsque la requête spécifiée retourne plusieurs résultats, le jeu de résultats pour chaque requête de retour de ligne est placé dans une table distincte. D’autres jeux de résultats sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). É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. Si votre application utilise des noms de colonnes et de tables, assurez-vous qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, tels que les instructions SQL par lot, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont pas ajoutés à .DataSet

Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :

  1. L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.

  2. Les informations de colonne clé doivent être présentes.

Si des informations de clé primaire sont présentes, toutes les lignes en double sont rapprochées et n’apparaissent qu’une seule fois dans qui DataTable correspond à .DataSet Les informations sur la clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTable, ou en affectant à AddWithKeyla propriété la MissingSchemaAction valeur .

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL par lot qui retournent plusieurs résultats, l’implémentation de pour le fournisseur de FillSchema données .NET Framework pour OLE DB récupère les informations de schéma uniquement pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill avec la MissingSchemaAction valeur définie sur AddWithKey.

Voir aussi

S’applique à

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.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

Paramètres

dataTable
DataTable

DataTable à remplir avec des enregistrements et, éventuellement, un schéma.

command
IDbCommand

Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.

behavior
CommandBehavior

Une des valeurs de l'objet CommandBehavior.

Retours

Nombre de lignes correctement ajoutées ou actualisées dans DataTable. Cela n'inclut pas les lignes affectées par des instructions qui ne retournent pas de ligne.

Remarques

La Fill méthode récupère les lignes de la source de données à l’aide de l’instruction SELECT spécifiée par une propriété associée SelectCommand . L’objet de connexion associé à l’instruction SELECT doit être valide, mais il n’a pas besoin d’être ouvert. Si la connexion est fermée avant Fill d’être appelée, elle est ouverte pour récupérer les données, puis fermée. Si la connexion est ouverte avant Fill d’être appelée, elle reste ouverte.

L’opération Fill ajoute ensuite les lignes à l’objet de destination DataTable spécifié dans , DataSeten créant l’objet DataTable s’il n’existe pas déjà. Lors de la création d’un DataTable objet, l’opération Fill crée normalement uniquement des métadonnées de nom de colonne. Toutefois, si la MissingSchemaAction propriété est définie sur AddWithKey, les clés primaires et les contraintes appropriées sont également créées.

Si l’objet DbDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet en fonction du modèle « Column1 », « Column2 », etc.

La surcharge de Fill qui prend DataTable comme paramètre obtient uniquement le premier résultat. Utilisez une surcharge de Fill qui prend DataSet comme paramètre pour obtenir plusieurs résultats.

Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable. S’il existe une clé primaire, les lignes entrantes sont fusionnées avec les lignes correspondantes qui existent déjà. S’il n’existe aucune clé primaire, les lignes entrantes sont ajoutées à .DataTable

Si SelectCommand retourne les résultats d'une jointure externe, le DataAdapter ne définit pas de valeur PrimaryKey pour le DataTableobtenu. Vous devez définir explicitement la clé primaire pour vous assurer que les lignes en double sont correctement résolues. Pour plus d’informations, consultez Définition des clés primaires.

Notes

Lors de la gestion des instructions SQL par lot qui retournent plusieurs résultats, l’implémentation de pour le fournisseur de FillSchema données .NET Framework pour OLE DB récupère les informations de schéma uniquement pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill avec la MissingSchemaAction valeur définie sur 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.

Voir aussi

S’applique à