sql >> Base de Datos >  >> RDS >> Mysql

Actualizar la base de datos mysql desde la fila seleccionada de datagridview

Esto es solo un pseudocódigo de lo que debe hacer

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

Primero crea un texto de comando sql con UPDATE cláusula. Supongo que su clave principal (el campo que identifica de forma única sus registros) es el ClientCode campo.

Luego crea la conexión y el comando. Rellene la colección de parámetros de comando con los parámetros requeridos por su texto tomando los valores de los cuadros de texto.
Llame al ExecuteNonQuery para almacenar los valores.

Si tiene éxito, entonces necesita actualizar o recargar su vista de cuadrícula de datos. El mejor enfoque sería configurar una por una las celdas de la vista de cuadrícula de la fila actual con los nuevos valores de los cuadros de texto, o simplemente podría extraer el código utilizado en form_load para llenar la cuadrícula y crear un nuevo método al que podría llamar desde el botón haga clic en evento. (Pero esto podría ser más lento si tiene muchos registros)