Partager via


IDataAdapter.Fill(DataSet) Méthode

Définition

Ajoute ou met à jour les lignes de DataSet pour correspondre à celles de la source de données à l'aide du nom DataSet et crée un DataTable appelé "Table".

public:
 int Fill(System::Data::DataSet ^ dataSet);
public int Fill (System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
Public 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.

Remarques

Fill 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 généralement 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 le IDataAdapter rencontre des colonnes en double lors du remplissage d’un DataTable, il génère des noms pour les colonnes successives, à 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.). Les applications doivent faire preuve de prudence lors de l’utilisation de noms de colonnes et de tables pour s’assurer que les conflits avec ces modèles d’affectation de noms ne se produisent pas.

Lorsque l’instruction SELECT utilisée pour remplir le DataSet retourne plusieurs résultats, comme une instruction SQL par lot, si l’un des résultats contient une erreur, tous les résultats successifs 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 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.

S’applique à

Voir aussi