IDataAdapter.Fill(DataSet) 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.
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
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.