DbDataAdapter.Fill Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Ajoute ou actualise les lignes d’une plage spécifiée dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide des DataSet noms de table source, de la chaîne de commande et du comportement des commandes. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Ajoute ou actualise des lignes dans une plage spécifiée dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide des noms et DataTable des DataSet noms. |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Ajoute ou actualise des lignes dans une plage spécifiée dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide des noms et IDataReader des DataSetDataTablenoms. |
| Fill(DataSet, Int32, Int32, String) |
Ajoute ou actualise des lignes dans une plage spécifiée dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide des noms et DataTable des DataSet noms. |
| Fill(Int32, Int32, DataTable[]) |
Ajoute ou actualise des lignes dans un ou plusieurs DataTable objets pour les mettre en correspondance dans la source de données à partir de l’enregistrement spécifié et récupérer jusqu’au nombre maximal spécifié d’enregistrements. |
| Fill(DataTable) |
Ajoute ou actualise des lignes dans une plage spécifiée dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide du DataTable nom. |
| Fill(DataTable, IDataReader) |
Ajoute ou actualise des lignes dans un DataTable pour qu’elles correspondent à celles de la source de données à l’aide des noms et IDataReader des noms spécifiésDataTable. |
| Fill(DataSet, String) |
Ajoute ou actualise des lignes dans le DataSet pour qu’elles correspondent à celles de la source de données à l’aide des noms et DataTable des DataSet noms. |
| Fill(DataSet) |
Ajoute ou actualise des lignes dans le DataSet. |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Ajoute ou actualise des lignes dans un DataTable pour qu’elles correspondent à celles de la source de données à l’aide des éléments spécifiés DataTableet IDbCommandCommandBehavior. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
protected:
virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer
Paramètres
- startRecord
- Int32
Numéro d’enregistrement de base zéro à utiliser.
- 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émarrage.
- srcTable
- String
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 CommandBehavior valeurs.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
Exceptions
La table source n’est pas valide.
Le startRecord paramètre est inférieur à 0.
- ou -
Le maxRecords paramètre est inférieur à 0.
Remarques
La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords elle est supérieure 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 le DataSet, 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 AddWithKeysur , les clés primaires et les contraintes appropriées sont également créées.
Si les DbDataAdapter colonnes dupliquées se produisent lors du remplissage d’un DataTable, elles génèrent des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite. Lorsque plusieurs jeux de résultats sont ajoutés à chaque DataSet 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, vérifiez 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ù le fichier contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par cas. Dans de telles situations, Fill effectue une comparaison sensible à 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".
S’il Fill est appelé et qu’il ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par cas, il 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. Si une clé primaire existe, les lignes entrantes sont fusionnées avec des lignes correspondantes qui existent déjà. Si aucune clé primaire n’existe, les lignes entrantes sont ajoutées au 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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation 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)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
protected:
virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer
Paramètres
- startRecord
- Int32
Numéro d’enregistrement de base zéro à utiliser.
- 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émarrage.
- command
- IDbCommand
IDbCommand Exécuté pour remplir les DataTable objets.
- behavior
- CommandBehavior
Une des CommandBehavior valeurs.
Retours
Nombre de lignes ajoutées ou actualisées dans les tables de données.
Exceptions
La DataSet valeur n’est pas valide.
Impossible de trouver la connexion.
Le startRecord paramètre est inférieur à 0.
- ou -
Le maxRecords paramètre est inférieur à 0.
Remarques
La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords elle est supérieure 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 l’objet IDbConnection est fermé avant Fill d’être appelé, il est ouvert pour récupérer des 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 à l’élément DataSet, mais aucune exception n’est levée.
Si l’objet DbDataAdapter rencontre des colonnes dupliquées lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite.
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, vérifiez 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ù le fichier contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par cas. Dans de telles situations, Fill effectue une comparaison sensible à 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".
S’il Fill est appelé et qu’il ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par cas, il 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 de la 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, tels qu’une instruction SQL batch, tenez compte des éléments suivants :
Lors du traitement de plusieurs résultats à partir d’une instruction SQL batch,
maxRecordss’applique uniquement au premier résultat. Il en va de même pour les lignes contenant des résultats chapitreés (fournisseur de données .NET Framework pour OLE DB uniquement). Le résultat de niveau supérieur est limité parmaxRecords, 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.
Note
Le DataSet nombre d’enregistrements indiqués n’est pas supérieur au nombre d’enregistrements indiqués 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
En cas de 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 dans la DataSet plage pour qu’elles correspondent à celles de la source de données à l’aide des noms et IDataReader des DataSetDataTablenoms.
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
- dataReader
- IDataReader
Nom du IDataReader.
- startRecord
- Int32
Numéro d’enregistrement de base zéro à utiliser.
- 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émarrage.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
Exceptions
Remarques
La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords elle est supérieure 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)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
public:
int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer
Paramètres
- startRecord
- Int32
Numéro d’enregistrement de base zéro à utiliser.
- 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émarrage.
- srcTable
- String
Nom de la table source à utiliser pour le mappage de table.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
Exceptions
La DataSet valeur n’est pas valide.
Impossible de trouver la connexion.
Le startRecord paramètre est inférieur à 0.
- ou -
Le maxRecords paramètre est inférieur à 0.
Exemples
L’exemple suivant utilise la classe dérivée, OleDbDataAdapterpour remplir une DataSet ligne avec 15 lignes, commençant à la ligne 10, à partir de la table Categories . Cet exemple part du principe 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 elle est supérieure 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 l’objet IDbConnection est fermé avant Fill d’être appelé, il est ouvert pour récupérer des 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 à l’élément DataSet, mais aucune exception n’est levée.
Si l’objet DbDataAdapter rencontre des colonnes dupliquées lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite.
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 d’insertion suivie d’une requête select, la table créée pour la requête select est nommée « Table », car elle est la première table créée. Si votre application utilise des noms de colonnes et de tables, vérifiez 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ù le fichier contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par cas. Dans de telles situations, Fill effectue une comparaison sensible à 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".
S’il Fill est appelé et qu’il ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par cas, il 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 de la 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 DataSet résultats retourne plusieurs résultats, tels que les instructions SQL batch, tenez compte des éléments suivants :
Lors du traitement de plusieurs résultats à partir d’une instruction SQL batch,
maxRecordss’applique uniquement au premier résultat. Il en va de même pour les lignes contenant des résultats chapitreés (fournisseur de données .NET Framework pour OLE DB uniquement). Le résultat de niveau supérieur est limité parmaxRecords, 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 au DataSetfichier .
Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :
L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSetfichier .
Les informations de colonne clé doivent être présentes.
Si les informations de clé primaire sont présentes, toutes les lignes dupliquées sont rapprochées et n’apparaissent qu’une seule fois dans le DataTable fichier correspondant au DataSet. Les informations de clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTableou en définissant la MissingSchemaAction propriété AddWithKeysur .
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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation du fournisseur de FillSchema données .NET Framework pour OLE DB récupère uniquement les informations de schéma pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill la MissingSchemaAction valeur définie AddWithKeysur .
Note
Le DataSet nombre d’enregistrements indiqués n’est pas supérieur au nombre d’enregistrements indiqués 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
En cas de 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[])
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Ajoute ou actualise des lignes dans un ou plusieurs DataTable objets pour les mettre en correspondance dans la source de données à partir de l’enregistrement spécifié et récupérer jusqu’au nombre maximal spécifié d’enregistrements.
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 d’enregistrement de base zéro à utiliser.
- 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émarrage.
Retours
Nombre de lignes ajoutées ou actualisées dans les DataTable objets. Cette valeur n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
Exceptions
dataTables est null ou un tableau vide.
Remarques
La maxRecords valeur 0 obtient tous les enregistrements trouvés après l’enregistrement de début. Si maxRecords elle est supérieure 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 le DataSet, 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 AddWithKeysur , 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 résolues correctement. 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 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite. Lorsque plusieurs jeux de résultats sont ajoutés au DataSetjeu 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, vérifiez qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.
Lorsque l’instruction SELECT utilisée pour remplir les DataSet résultats renvoie plusieurs résultats, tels qu’une instruction SQL batch, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et non ajoutés au DataSetfichier .
Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec des lignes correspondantes qui existent déjà. Si aucune clé primaire n’existe, les lignes entrantes sont ajoutées au DataTable.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation du fournisseur de FillSchema données .NET Framework pour OLE DB récupère uniquement les informations de schéma pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill la MissingSchemaAction valeur définie AddWithKeysur .
Voir aussi
S’applique à
Fill(DataTable)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
public:
int Fill(System::Data::DataTable ^ dataTable);
public int Fill(System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer
Paramètres
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
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 le DataSet, 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 AddWithKeysur , les clés primaires et les contraintes appropriées sont également créées.
Si les DbDataAdapter colonnes dupliquées se produisent lors du remplissage d’un DataTable, elles génèrent des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite. Lorsque plusieurs jeux de résultats sont ajoutés à chaque DataSet jeu de résultats est placé dans une table distincte.
La surcharge de Fill ce paramètre DataTable obtient uniquement le premier résultat. Utilisez une surcharge de Fill ce paramètre pour DataSet obtenir plusieurs résultats.
La Fill méthode prend en charge les scénarios où le fichier contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par cas. Dans de telles situations, Fill effectue une comparaison sensible à 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".
S’il Fill est appelé et qu’il ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par cas, il 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. Si une clé primaire existe, les lignes entrantes sont fusionnées avec des lignes correspondantes qui existent déjà. Si aucune clé primaire n’existe, les lignes entrantes sont ajoutées au 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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation 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 des lignes dans un DataTable pour qu’elles correspondent à celles de la source de données à l’aide des noms et IDataReader des noms spécifiésDataTable.
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
- dataReader
- IDataReader
Nom du IDataReader.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataTable. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
S’applique à
Fill(DataSet, String)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
public:
int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill(System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer
Paramètres
- srcTable
- String
Nom de la table source à utiliser pour le mappage de table.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
Exceptions
La table source n’est pas valide.
Exemples
L’exemple suivant utilise la classe dérivée, OleDbDataAdapterpour remplir une DataSet ligne de la table catégories. Cet exemple part du principe 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 l’objet IDbConnection est fermé avant Fill d’être appelé, il est ouvert pour récupérer des 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 à l’élément DataSetet 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 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite.
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, vérifiez 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ù le fichier contient plusieurs DataTable objets dont les DataSet noms diffèrent uniquement par cas. Dans de telles situations, Fill effectue une comparaison sensible à 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".
S’il Fill est appelé et qu’il ne contient qu’un DataTable seul dont le DataSet nom diffère uniquement par cas, il 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 de la 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 DataSet résultats retourne plusieurs résultats, tels qu’une instruction SQL batch, 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 au DataSetfichier .
Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :
L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSetfichier .
Les informations de colonne clé doivent être présentes. Si les informations de clé primaire sont présentes, toutes les lignes dupliquées sont rapprochées et n’apparaissent qu’une seule fois dans le DataTable fichier correspondant au DataSet. Les informations de clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTableou en définissant la MissingSchemaAction propriété
AddWithKeysur .
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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation du fournisseur de FillSchema données .NET Framework pour OLE DB récupère uniquement les informations de schéma pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill la MissingSchemaAction valeur définie AddWithKeysur .
Notes pour les héritiers
En cas de 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)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
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
Retours
Nombre de lignes ajoutées ou actualisées dans le DataSet. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
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 l’objet IDbConnection est fermé avant Fill d’être appelé, il est ouvert pour récupérer des 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 de la 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 à l’élément DataSetet 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 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite.
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 d’insertion 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, vérifiez qu’il n’existe aucun conflit avec ces modèles d’affectation de noms.
Lorsque l’instruction SELECT utilisée pour remplir les DataSet résultats renvoie plusieurs résultats, tels que les instructions SQL de lot, si l’un des résultats contient une erreur, tous les résultats suivants sont ignorés et ne sont pas ajoutés au DataSetfichier .
Lors de l’utilisation d’appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :
L’instruction SQL doit correspondre à celle initialement utilisée pour remplir le DataSetfichier .
Les informations de colonne clé doivent être présentes.
Si les informations de clé primaire sont présentes, toutes les lignes dupliquées sont rapprochées et n’apparaissent qu’une seule fois dans le DataTable fichier correspondant au DataSet. Les informations de clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTableou en définissant la MissingSchemaAction propriété AddWithKeysur .
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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation du fournisseur de FillSchema données .NET Framework pour OLE DB récupère uniquement les informations de schéma pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill la MissingSchemaAction valeur définie AddWithKeysur .
Voir aussi
S’applique à
Fill(DataTable, IDbCommand, CommandBehavior)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Ajoute ou actualise des lignes dans un DataTable pour qu’elles correspondent à celles de la source de données à l’aide des éléments spécifiés DataTableet IDbCommandCommandBehavior.
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
- command
- IDbCommand
Instruction SQL SELECT utilisée pour récupérer des lignes de la source de données.
- behavior
- CommandBehavior
Une des CommandBehavior valeurs.
Retours
Nombre de lignes ajoutées ou actualisées dans le DataTable. Cela n’inclut pas les lignes affectées par les instructions qui ne retournent pas de lignes.
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 à l’objet de destination DataTable spécifié dans le DataSet, en 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 AddWithKeysur , les clés primaires et les contraintes appropriées sont également créées.
Si l’objet DbDataAdapter rencontre des colonnes dupliquées lors du remplissage d’un DataTable, il génère des noms pour les colonnes suivantes, à l’aide du modèle « columnname1 », « columnname2 », « columnname3 », et ainsi de suite. Si les données entrantes contiennent des colonnes sans nom, elles sont placées dans le DataSet modèle « Column1 », « Column2 », et ainsi de suite.
La surcharge de Fill ce paramètre DataTable obtient uniquement le premier résultat. Utilisez une surcharge de Fill ce paramètre pour DataSet obtenir plusieurs résultats.
Vous pouvez utiliser la Fill méthode plusieurs fois sur le même DataTable. Si une clé primaire existe, les lignes entrantes sont fusionnées avec des lignes correspondantes qui existent déjà. Si aucune clé primaire n’existe, les lignes entrantes sont ajoutées au 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 résolues correctement. Pour plus d’informations, consultez Définition des clés primaires.
Note
Lors de la gestion des instructions SQL batch qui retournent plusieurs résultats, l’implémentation du fournisseur de FillSchema données .NET Framework pour OLE DB récupère uniquement les informations de schéma pour le premier résultat. Pour récupérer des informations de schéma pour plusieurs résultats, utilisez Fill la MissingSchemaAction valeur définie AddWithKeysur .
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.