我在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");
答案 0 :(得分:1)
你得到的错误非常清楚。错误信息永远不会存在。
为什么我收到此错误?
因为您要将7个值插入7列。值必须与INSERT
语句中列出的列号匹配。
如何处理?
仅将7个值插入7列。或者您可能在列列表中缺少列名。
顺便说一句,您的代码易受攻击到SQL injection。尝试使用参数化查询。有关更多信息,请参阅此文章:
答案 1 :(得分:1)
你有一份副本:
dp_order.Text + "','" + dp_order.Text
只需放一个,然后就行了。但是考虑使用Sql参数来避免SQL注入