Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Atualizar banco de dados mysql da linha selecionada do datagridview


Este é apenas um pseudocódigo do que você precisa fazer
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
    }
}

Primeiro você cria um texto de comando sql com o UPDATE cláusula. Presumo que sua chave primária (o campo que identifica exclusivamente seus registros) é o ClientCode campo.

Em seguida, crie a conexão e o comando. Preencha a coleção de parâmetros de comando com os parâmetros exigidos pelo seu texto, obtendo os valores dos TextBoxes.
Chame o ExecuteNonQuery para armazenar os valores.

Se você tiver sucesso, precisará atualizar ou recarregar seu datagridview. A melhor abordagem seria definir uma a uma as células gridview da linha atual com os novos valores das caixas de texto, ou você poderia simplesmente extrair o código usado em form_load para preencher a grade e criar um novo método que você poderia chamar do botão clique em evento. (Mas isso pode ser mais lento se você tiver muitos registros)