0

我有一个 sql 语句,我试图将数据插入到 .mdb 数据库中的表中。我的查询是

"INSERT INTO PROJECT_MASTER VALUES ('" + Project_ID.Text + "','" + Project_Name.Text + "'," +
                          "'" + Common_Log_ID.Text + "','" + Common_Log_Description.Text + "'," +
                          "'" + Convert.ToString(Project_Manager.SelectedItem) + "','" + Convert.ToString(Priority_value) + "'," +
                          "'" + Convert.ToString(Complexity_value) + "','" + Convert.ToString(Status_value) + "'," +
                          "'" + Convert.ToDateTime(sd) + "','" + Convert.ToDateTime(ed) + "'," +
                          "'" + Notes.Text + "','" + Convert.ToString(User_Name) + "'," +
                          "'" + DateTime.Now + "')";

所以我的表有 14 列,第一列是自动编号增量,最后一列是当前日期。除此之外,我只给出了所有其他正确的。

我在 asp.net 中遇到错误,因为“查询值和目标字段的数量不一样”

4

3 回答 3

0

如果省略第一列,则查询应该是这样的:

INSERT INTO PROJECT_MASTER (col2, col3, ..., col14) VALUES ...
于 2013-02-14T12:16:22.583 回答
0

我建议您两个更改两件事,以避免一般的此类错误:

1.) 在 INSERT 中列出列

INERT INTO table (a, b) VALUES (1, 2)

这插入到1列中a并允许您跳过第一列和最后一列。2b

2.) 使用参数化查询。这使您的语句更具可读性,也带来了一些安全性

于 2013-02-14T12:17:25.393 回答
0

因为您没有给出autoincrement列值,所以数据库只获取13值而不是14.

以下方式可能会对您有所帮助....

"insert into PROJECT_MASTER(SPECIFY_COLUMN_NAMES_WHICH_YOU_WANT_TO_INCLUDE_HERE) values(SPECIFY_YOUR_VALUES_HERE)
于 2013-02-14T12:17:43.300 回答