To tylko pseudokod tego, co musisz zrobić
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
}
}
Najpierw budujesz tekst polecenia sql za pomocą UPDATE
klauzula. Zakładam, że Twój klucz podstawowy (pole, które jednoznacznie identyfikuje Twoje rekordy) to ClientCode
pole.
Następnie utwórz połączenie i polecenie. Wypełnij kolekcję parametrów polecenia parametrami wymaganymi przez Twój tekst, pobierając wartości z pól tekstowych.
Wywołaj ExecuteNonQuery
do przechowywania wartości.
Jeśli Ci się to uda, musisz zaktualizować lub ponownie załadować Datagridview. Najlepszym podejściem byłoby ustawienie jednej po drugiej komórek gridview bieżącego wiersza z nowymi wartościami z pól tekstowych lub możesz po prostu wyodrębnić kod użyty w form_load, aby wypełnić siatkę i utworzyć nową metodę, którą można wywołać z przycisku kliknij wydarzenie. (Ale może to być wolniejsze, jeśli masz wiele rekordów)