Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Aktualisieren Sie die MySQL-Datenbank aus der ausgewählten Datagridview-Zeile

Dies ist nur ein Pseudocode dessen, was Sie tun müssen

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
    }
}

Zuerst baut man mit dem UPDATE einen SQL-Befehlstext Klausel. Ich gehe davon aus, dass Ihr Primärschlüssel (das Feld, das Ihre Datensätze eindeutig identifiziert) der ClientCode ist Feld.

Erstellen Sie dann die Verbindung und den Befehl. Füllen Sie die Sammlung der Befehlsparameter mit den Parametern, die für Ihren Text erforderlich sind, indem Sie die Werte aus den TextBoxes nehmen.
Rufen Sie ExecuteNonQuery auf um die Werte zu speichern.

Wenn Sie erfolgreich sind, müssen Sie Ihre Datagridview aktualisieren oder neu laden. Der beste Ansatz wäre, die Gridview-Zellen der aktuellen Zeile nacheinander mit den neuen Werten aus den Textfeldern zu setzen, oder Sie könnten einfach den in form_load verwendeten Code extrahieren, um das Raster zu füllen, und eine neue Methode erstellen, die Sie über die Schaltfläche aufrufen können Ereignis klicken. (Dies könnte jedoch langsamer sein, wenn Sie viele Datensätze haben)