Comment : modifier des lignes dans un DataTable

Mise à jour : novembre 2007

Pour modifier une ligne existante dans un DataTable, vous devez rechercher le DataRow à modifier, puis assigner les valeurs mises à jour aux colonnes souhaitées.

Les exemples suivants montrent comment rechercher et modifier des lignes dans des groupes de données typés et non typés.

Modification d'un enregistrement dans un DataTable lorsque vous ne connaissez pas l'index de la ligne à modifier

En général, vous ne connaissez pas l'index de la ligne à modifier. Les tables de données contenues dans des groupes de données typés sont créées avec une méthode FindBy qui utilise la clé primaire de la table pour rechercher une ligne.

Pour mettre à jour des enregistrements existants dans des groupes de données typés (l'index de la ligne est inconnu)

  • Assignez un DataRow spécifique à une variable à l'aide de la méthode FindBy générée, puis utilisez cette variable pour accéder aux colonnes que vous souhaitez modifier et leur assigner de nouvelles valeurs.

    Dans l'exemple suivant, la colonne CustomerID est la clé primaire de la table Customers. Par conséquent, la méthode FindBy générée est FindByCustomerID.

    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    customersRow.CompanyName = "Updated Company Name"
    customersRow.City = "Seattle"
    
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    
    customersRow.CompanyName = "Updated Company Name";
    customersRow.City = "Seattle";;
    

En général, vous ne connaissez pas l'index de la ligne à modifier. Les tables de données contenues dans des groupes de données non typés sont créées avec une méthode Select qui retourne un tableau de DataRows.

Pour mettre à jour des enregistrements existants dans des groupes de données non typés (l'index de la ligne est inconnu)

  • Utilisez la méthode Select du DataTable pour rechercher une ligne spécifique et assigner de nouvelles valeurs aux colonnes souhaitées

    Dans l'exemple suivant, la colonne CustomerID est la clé primaire de la table Customers. Par conséquent, l'appel à la méthode Select et la recherche de la clé primaire ne permettent de détecter qu'une seule ligne. Le type de retour est également un tableau de DataRows. Vous accédez donc à l'index (0), ou à la première ligne, du tableau.

    Dim customerRow() As Data.DataRow
    customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'")
    
    customerRow(0)("CompanyName") = "Updated Company Name"
    customerRow(0)("City") = "Seattle"
    
    DataRow[] customerRow = 
        dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
    
    customerRow[0]["CompanyName"] = "Updated Company Name";
    customerRow[0]["City"] = "Seattle";
    

Modification d'un enregistrement dans un DataTable lorsque vous connaissez l'index de la ligne à modifier

Pour mettre à jour des enregistrements existants à l'aide de groupes de données typés (l'index de la ligne est connu)

  • Assignez une valeur à la colonne dans un objet DataRow.

    Les groupes de données typés utilisent la liaison anticipée, qui permet d'exposer les noms de table et de colonne en tant que propriétés au moment du design. Ceci permet de faciliter l'écriture et la lecture du code.

    L'exemple suivant montre comment mettre à jour les données des colonnes CompanyName et City du cinquième enregistrement de la table Customers dans le groupe de données :

    NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name"
    NorthwindDataSet1.Customers(4).City = "Seattle"
    
    northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
    northwindDataSet1.Customers[4].City = "Seattle";
    

Pour mettre à jour des enregistrements existants dans des groupes de données non typés (l'index de la ligne est connu)

  • Assignez une valeur une colonne spécifique dans un objet DataRow.

    Les noms de table et de colonne des groupes de données non typés ne sont pas disponibles au moment du design ; vous devez y accéder à partir de leurs indices respectifs.

    L'exemple suivant montre comment mettre à jour les données dans les deux premières colonnes du cinquième enregistrement de la première table dans Dataset1, en accédant aux valeurs de données à partir des indices de collection des tables, lignes et éléments (colonnes) :

    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    dataSet1.Tables[0].Rows[4].ItemArray[0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4].ItemArray[1] = "Seattle";
    

    L'exemple suivant montre comment mettre à jour les mêmes valeurs que dans l'exemple précédent, non plus à partir des indices de collection, mais en passant les noms de table et de colonnes en tant que chaînes. Vous devez toujours connaître l'index de la ligne pour la modifier :

    DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name"
    DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
    
    dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name";
    dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
    

Voir aussi

Concepts

Modifications d'un DataTable

Ajout de données à un objet DataTable

Suppresion d'un objet DataRow

Vue d'ensemble de l'affichage des données

Autres ressources

Connexion aux données dans Visual Studio

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Affichage des données sur des formulaires dans les applications Windows

Modification des données dans votre application

Validation des données

Enregistrement des données