2017-02-20 69 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."; 
    }