Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre à jour la base de données mysql à partir de la ligne sélectionnée de datagridview

Ceci n'est qu'un pseudo-code de ce que vous devez faire

string cmdText = @"UPDATE t_pi_Clients
                 SET ClientName = @ClientName,
                     PostalAdd = @PostalAdd,
                     Telephone = @Telephone,
                     Fax = @Fax,
                     .... etc ....
                 WHERE ClientCode = @ClientCode";
using(MySqlConnection cn = new MySqlConnection(.....))
using(MySqlCommand cmd = new MySqlCommand(cmdText, cn))
{
    cn.Open();
    cmd.Parameters.AddWithValue("@ClientName", txtboxClientName.Text);
    cmd.Parameters.AddWithValue("@PostalAdd", txtboxPostalAddress.Text);
    ....etc etc...
    cmd.Parameters.AddWithValue("@ClientCode", textboxClientCode.Text);
    int rowsUpdated = cmd.ExecuteNonQuery();
    if(rowsUpdated > 0) 
    {
        // extract the code that loads DataGridView1 from the Form_Load
        // and create a reusable method that you could call from here
    }
}

Vous construisez d'abord un texte de commande sql avec le UPDATE clause. Je suppose que votre clé primaire (le champ qui identifie de manière unique vos enregistrements) est le ClientCode champ.

Créez ensuite la connexion et la commande. Remplissez la collection de paramètres de commande avec les paramètres requis par votre texte en prenant les valeurs des TextBoxes.
Appelez le ExecuteNonQuery pour stocker les valeurs.

Si vous réussissez, vous devez mettre à jour ou recharger votre datagridview. La meilleure approche serait de définir une par une les cellules gridview de la ligne actuelle avec les nouvelles valeurs des zones de texte, ou vous pouvez simplement extraire le code utilisé dans form_load pour remplir la grille et créer une nouvelle méthode que vous pourriez appeler depuis le bouton cliquez sur l'événement. (Mais cela pourrait être plus lent si vous avez de nombreux enregistrements)