将数据插入SQL时出错

时间:2017-02-20 15:56:23

标签: c# sql

我有一个C#Winform应用程序使用以下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'附近的语法不正确。 我失去了几个小时试图弄清楚这一个,无法找到错误。

有人可以帮忙吗?

提前致谢

3 个答案:

答案 0 :(得分: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);

检查单元格名称并使用它们。

答案 1 :(得分:0)

如果您将该SQL代码复制并粘贴到管理工作室,您将看到" desc"突出显示它是一个保留关键字,用于排序查询。

只需将desc更改为[desc]即可。

答案 2 :(得分:0)

按钮单击事件,使用textBoxes,可能如下所示:

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.";
    }