Dette er blot en pseudokode for, hvad du skal gøre
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
}
}
Først bygger du en sql-kommandotekst med UPDATE
klausul. Jeg antager, at din primære nøgle (det felt, der entydigt identificerer dine poster) er ClientCode
felt.
Opret derefter forbindelsen og kommandoen. Udfyld kommandoparametersamlingen med de parametre, der kræves af din tekst, og tag værdierne fra tekstboksene.
Kald ExecuteNonQuery
for at gemme værdierne.
Hvis det lykkes, skal du opdatere eller genindlæse dit datagridview. Den bedste tilgang ville være at indstille en efter en gridview-cellerne i den aktuelle række med de nye værdier fra tekstboksene, eller du kan simpelthen udtrække koden, der bruges i form_load for at udfylde gitteret og lave en ny metode, som du kan kalde fra knappen klik på begivenhed. (Men dette kunne være langsommere, hvis du har mange poster)