我在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";
值根本没有更新。但是消息框显示一切都已完成。 只需将名称更改为“0”。
非常感谢。
答案 0 :(得分:0)
您的更新声明无效。试试这个:
cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "', g_surname = '"+textBox2.Text+"' where ID =@id";
虽然我们正在使用它,但您也应该将这些文本框值作为参数传递。您的查询容易受到SQL注入攻击。 What is SQL injection?