我有一个datagridview,由3个按钮控制(添加,编辑和删除)。其中一个按钮是“编辑”按钮。其他2个按钮效果很好。它还有2个文本框,Task和Priority,如果选择了datagridview中的一行,那么列的值将传递给每个文本框
我不知道下面的代码是否有任何问题。
数据库中的表只有2列,Task和Priority。
当我单击编辑按钮时,try语句会给我成功消息,但数据库不会像datagridview一样更新。
有没有解决方案?
void EditItemClick(object sender, EventArgs e)
{
if (taskTb.Text != "" && priorityTb.Text != ""){
koneksi.Open();
MySqlCommand cmd = new MySqlCommand("update todo set Task=@task, Priority=@priority where Task=@task", koneksi);
cmd.Parameters.AddWithValue(@"task", taskTb.Text);
cmd.Parameters.AddWithValue(@"priority", priorityTb.Text);
try{
cmd.ExecuteNonQuery();
MessageBox.Show("Successfully Edited", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (MySqlException ex){
MessageBox.Show(ex.ToString());
}
koneksi.Close();
readData();
}
else{
MessageBox.Show("Failed to edit");
}
}
答案 0 :(得分:1)
您的查询中存在问题。 您无法通过任务和优先级,然后通过传递任务来更新它。
解决方案:
"update todo set Task=@task, Priority=@priority where id=@id"