2017-06-17 72 views
0

我有一个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 [email protected]"; 
       cmd.Parameters.AddWithValue("@id", value); 
       cmd.Connection = connection; 
       connection.Open(); 
       cmd.ExecuteNonQuery(); 
       { 
        MessageBox.Show("Update Success!"); 
        connection.Close(); 
       } 

当更新SQL命令只包含一个值来更新 - 它的工作原理(举例):

cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "' where ID [email protected]"; 

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

非常感谢。

+0

您不能使用'AND',用逗号替换它。然后参数化所有变量,而不仅仅是id。 – Crowcoder

+0

@Crowcoder好吧,现在就试试吧 –

+0

@Crowcoder更新了代码,仍然不起作用。名称的值更改为“0” –

回答

1

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

cmd.CommandText = "UPDATE guestreg SET g_name='" + textBox1.Text + "', g_surname = '"+textBox2.Text+"' where ID [email protected]"; 

虽然我们在这,你应该传递那些文本框的值作为参数。您的查询容易受到SQL注入的影响。 What is SQL injection?

+0

现在会尝试 –

+0

更新,仍然不工作 –

+0

更新 - 工作:) –