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
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)
- 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 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)
- 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 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 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, 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,
maxRecords
s’applique uniquement au premier résultat. Il en va de même pour les lignes contenant des résultats chapitre (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.
Notes
ne DataSet
contient pas plus que le nombre d’enregistrements indiqué par maxRecords
. Toutefois, l’ensemble des résultats générés 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
- 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
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)
- 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 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 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 IDbConnection 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 à , 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, en utilisant le modèle « columnname1 », « columnname2 », « columnname3 », etc. Si les données entrantes contiennent des colonnes sans nom, elles sont placées selon DataSet le 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. Les jeux de résultats supplémentaires sont nommés en ajoutant des valeurs intégrales au nom de table spécifié (par exemple, « Table », « Table1 », « Table2 », etc.). É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 de sélection, la table créée pour la requête de sélection 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’y a 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 cas, 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 les instructions SQL par lots, 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 chapitre (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 non ajoutés à .DataSet
Lors de l’utilisation des appels suivants Fill pour actualiser le contenu du DataSet, deux conditions doivent être remplies :
L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.
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 le DataTable qui correspond à .DataSet Les informations de clé primaire peuvent être définies via FillSchema, en spécifiant la PrimaryKey propriété du DataTable, ou en définissant la MissingSchemaAction propriété sur AddWithKey
.
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.
Notes
Lors de la gestion des instructions SQL par lots qui retournent plusieurs résultats, l’implémentation du 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
ne DataSet
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 substitution Fill(DataSet) 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
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.
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.
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 batch qui retournent plusieurs résultats, l’implémentation de FillSchema pour le fournisseur de données .NET Framework pour OLE DB récupère les informations de schéma pour le premier résultat uniquement. 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)
- 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 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
- 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)
- 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
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, comme 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 :
L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.
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 à
AddWithKey
la 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 batch qui retournent plusieurs résultats, l’implémentation de FillSchema pour le fournisseur de données .NET Framework pour OLE DB récupère les informations de schéma pour le premier résultat uniquement. 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)
- 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 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 :
L’instruction SQL doit correspondre à celle utilisée initialement pour remplir le DataSet.
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 à AddWithKey
la 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 batch qui retournent plusieurs résultats, l’implémentation de FillSchema pour le fournisseur de données .NET Framework pour OLE DB récupère les informations de schéma pour le premier résultat uniquement. 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)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
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
- 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 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 , 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 batch qui retournent plusieurs résultats, l’implémentation de FillSchema pour le fournisseur de données .NET Framework pour OLE DB récupère les informations de schéma pour le premier résultat uniquement. 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.