传递try语句但数据库不会在C#中更新

时间:2017-07-01 07:48:08

标签: c# datagridview

我有一个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");
        }
    }

1 个答案:

答案 0 :(得分:1)

您的查询中存在问题。 您无法通过任务和优先级,然后通过传递任务来更新它。

解决方案:

"update todo set Task=@task, Priority=@priority where id=@id"