2017-02-20 82 views
2

我有一個C#winform應用程序女巫使用下面的SQL插入代碼,但由於某種原因,我得到一個錯誤的說法是:錯誤數據插入到SQL

private void button1_Click(object sender, EventArgs e) 
     { 
      if (desemp.Text != "" && valu.Text != "" && fs.Text != "" && sel.Text != "" && desc.Text != "" && ench.Text != "" && comp.Text != "") 
      { 
       cmd = new SqlCommand("insert into dbo.vidros(desempenho,valu,fs,sel,desc,enchimento,compo) values (@desemp,@valu,@fs,@sel,@desc,@ench,@comp)", con); 
       con.Open(); 
       cmd.Parameters.AddWithValue("@desemp", desemp.Text); 
       cmd.Parameters.AddWithValue("@valu", valu.Text); 
       cmd.Parameters.AddWithValue("@fs", fs.Text); 
       cmd.Parameters.AddWithValue("@sel", sel.Text); 
       cmd.Parameters.AddWithValue("@desc", desc.Text); 
       cmd.Parameters.AddWithValue("@ench", ench.Text); 
       cmd.Parameters.AddWithValue("@comp", comp.Text); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 
       MessageBox.Show("sucess!"); 
      } 
      else 
      { 
       MessageBox.Show("Error!"); 
      } 
     } 

我得到的錯誤是:附近有語法錯誤單詞'desc'。 我失去了幾個小時試圖找出這一個,並找不到錯誤。

任何人都可以幫忙嗎?

在此先感謝

+4

'desc'是一個保留字,訂貨。 –

+0

是因爲'desc'是關鍵字嗎? –

+1

'desc'確實是一個關鍵字。如果你真的想堅持下去,使用'[desc]'(帶方括號),但是,我不會推薦它。 – Jens

回答

0

如果您將該SQL代碼複製並粘貼到管理工作室中,則會看到突出顯示「desc」,表示它是保留關鍵字,用於排序查詢。

只需將desc更改爲[desc]即可。

2
SqlParameter[] Prms = new SqlParameter[] { 
      new SqlParameter("desemp", desemp.Text), 
      new SqlParameter("valu", valu.Text), 
      new SqlParameter("fs", fs.Text), 
      new SqlParameter("sel", sel.Text), 
      new SqlParameter("desc", desc.Text), 
      new SqlParameter("ench", ench.Text), 
      new SqlParameter("comp", comp.Text), 
     }; 


cmd.Parameters.AddRange(Prms); 

檢查單元名稱,並使用它們像這樣。

+0

這只是添加參數的一種不同方式。這個答案沒有解決錯誤。 – LarsTech

0

一個按鈕單擊事件,使用文本框,可能是這樣的:

using System.Data.SqlClient; 

protected void Button1_Click(object sender, EventArgs e) 
{ 
SqlConnection con = new SqlConnection(System.Configuration. 
ConfigurationManager.ConnectionStrings["con"].ToString()); 
    try 
    { 
     string query = "insert into UserDetail(Name,Address) 
     values('" + txtName.Text + "','" + txtAddress.Text + "');"; 
     SqlDataAdapter da = new SqlDataAdapter(query, con); 
     con.Open(); 
     da.SelectCommand.ExecuteNonQuery(); 
     con.Close(); 
     lblmessage.Text = "Data saved successfully."; 
    } 
    catch 
    { 
     con.Close(); 
     lblmessage.Text = "Error while saving data."; 
    }