2017-06-17 73 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

更新 - 工作:) –