我有一个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'附近的语法不正确。 我失去了几个小时试图弄清楚这一个,无法找到错误。
有人可以帮忙吗?
提前致谢
答案 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.";
}