-1

我在 SQL Server 中有一个表,它有很多列。现在我只想在选定的列中添加值,但是当我这样做时,它会引发如下异常:

INSERT 语句中的列数少于 VALUES 子句中指定的值。VALUES 子句中的值数必须与 INSERT 语句中指定的列数相匹配。)

如何处理?

这是我的代码:

SqlConnection con = getDbConnection();
SqlCommand cmd = new SqlCommand("insert into pi_project_info(control#,pro_name,cust_name,cust_order,order_dt,req_dt,notes) values ('" + tb_control.Text + "','" + tb_project.Text + "','" + ddl_customer_name.Text + "','" + tb_order_no.Text + "','" + dp_order.Text + "','" + dp_order.Text + "','" + dp_req_del.Text + "','" + tb_notes.Text + "' )", con);

 cmd.ExecuteNonQuery();
 MessageBox.Show("Saved successfully");
4

2 回答 2

1

你得到的错误很清楚。错误信息永远不会说谎。

为什么我得到这个错误?

因为您要将 8 个值插入 7 列。INSERT这些值必须与语句中列出的列号相匹配。

如何处理?

仅将 7 个值插入 7 列。或者您可能在列列表中缺少列名。

顺便说一句,您的代码容易受到SQL注入的影响。尝试使用参数化查询。有关更多信息,请参阅这篇文章:

于 2012-11-03T08:12:15.050 回答
1

你有一个重复:

 dp_order.Text + "','" + dp_order.Text

只需放下一个,然后就可以了。但是考虑使用Sql参数来避免SQL Injection

于 2012-11-03T08:13:23.407 回答