无法更新datagridview

时间:2017-06-17 14:08:12

标签: c# ms-access datagridview

我在datagridview中有一个值的编辑表单。问题出在更新代码中。整个代码 已更新

int value = int.Parse(label13.Text); // ID
            string txtbox2 = textBox2.Text.ToString();
            string txtbox1 = textBox1.Text.ToString();
            try
            {
                var cmd = new OleDbCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "UPDATE guestreg SET g_name='" + txtbox1 + "' AND g_surname = '"+txtbox2+"'  where ID =@id";
                cmd.Parameters.AddWithValue("@id", value);
                cmd.Connection = connection;
                connection.Open();
                cmd.ExecuteNonQuery();
                {
                    MessageBox.Show("Update Success!");
                    connection.Close();
                }

当update sql命令只包含一个要更新的值时 - 它可以工作(示例):

cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "' where ID =@id";

enter image description here 值根本没有更新。但是消息框显示一切都已完成。 只需将名称更改为“0”。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您的更新声明无效。试试这个:

 cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "', g_surname = '"+textBox2.Text+"'  where ID =@id";

虽然我们正在使用它,但您也应该将这些文本框值作为参数传递。您的查询容易受到SQL注入攻击。 What is SQL injection?