2015-01-06 96 views
-4

我想更新我的數據庫中的表,但我得到這個錯誤我該怎麼辦更新SQL C#

System.Data.SqlClient.SqlException(0x80131904):變量名「@ssn」已經聲明。變量名稱在查詢批處理或存儲過程中必須是唯一的。 必須聲明標量變量「@Name」。

代碼:

private void button3_Click(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(@"Data Source=HP\BILSAY;Initial Catalog=Railway System;Integrated Security=True"); 
    conn.Open(); 

    try 
    { 
     SqlCommand cmd = new SqlCommand("UPDATE Employe SET [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected] WHERE [email protected] ",conn); 
     cmd.Parameters.AddWithValue("@ssn", dataGridView1.CurrentRow.Cells[0].Value); 
     cmd.Parameters.AddWithValue("@ssn", textBox2.Text); 
     cmd.Parameters.AddWithValue("@Name", textBox3.Text); 
     cmd.Parameters.AddWithValue("@Surname", textBox4.Text); 
     cmd.Parameters.AddWithValue("@Adress", textBox5.Text); 
     cmd.Parameters.AddWithValue("@Age", textBox6.Text); 
     cmd.Parameters.AddWithValue("@Phone", textBox7.Text); 
     cmd.Parameters.AddWithValue("@Profesion", textBox8.Text); 

     if (conn.State == ConnectionState.Closed) 
     { 
      conn.Open(); 
     } 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
     Employe emp = new Employe(); 
     emp.Show(); 
     MessageBox.Show("Updated."); 
    } 
    catch (SqlException) 
    { 
     MessageBox.Show("Error Occurs!"); 
    } 
    } 
} 

System.Data.SqlClient.SqlException(0x80131904):變量名 '@ssn' 已聲明。在查詢批處理或存儲過程中,變量名稱在 內必須唯一。

+5

錯誤似乎很清楚 - 你添加了兩個具有相同名稱的參數(「@ssn」)。重命名其中的一個(在SQL和參數函數中) –

+0

刪除一個或另一個 'cmd.Parameters.AddWithValue(「@ ssn」,dataGridView1.CurrentRow.Cells [0] .Value); cmd.Parameters.AddWithValue (「@ssn」,textBox2.Text);''當你退出它時,你爲什麼不'處理'新創建的表單??請使用調試器來跳過你的代碼.. – MethodMan

回答

0

您有cmd.Parameters.AddWithValue("@ssn"... 2次。例外是正常的。

1

錯誤似乎很清楚 - 你添加兩個具有相同名稱的參數("@ssn")。你有一些選擇:

  • 重命名paraters之一(在SQL和Parameters.AddWithValue呼叫
  • 因爲這是你用
  • 添加一個獨立的主鍵值不更新SSN colume鍵列(如一個自動遞增整數),並使用該查找的,而不是SSN。
+0

謝謝... ............ –

0

的問題是,您要添加的參數的兩倍。如果你正在尋找改變的價值paramete r在你添加它之後嘗試改變現有參數值屬性cmd.Parameters("@ssn").value = "somevalue"