【发布时间】:2012-04-07 11:08:28
【问题描述】:
以下两个 C# 代码示例,将信息写入 Access 数据库,据我所知,应该产生相同的输出。但是第一个有效,第二个给出错误。
第一个代码:没有自动编号主键字段,效果很好。但直到我尝试添加任何字段都没有不同的行。我必须拥有 AUTONUMBER 唯一 ID,(显然是因为缺乏不确定性)
string vsql = string.Format("insert into Log values " +
"('{0}','{1}',{2},{3},'{4}',#{5}#,'{6}')",
comboBox1.Text,
comboBox2.Text,
int.Parse(textBox1.Text),
int.Parse(textBox1.Text),
textBox3.Text,
textBox2.Text,
addRemove
);
第二个代码:返回错误信息:
“附加信息:查询值和目标字段的数量不一样。”
据我所知,它们都具有相同数量的字段。而且,两者都没有唯一的 AUTONUMBER ID 字段,我无法添加该字段,因为我不知道如何将代码“插入”或“不插入”任何内容到自动编号字段中。同样,我显然需要这个领域。任何帮助表示赞赏!任何一种代码都是可以接受的,只要我有一个自动编号字段,当我的表单提交新记录时会自动更新。
string vsql = string.Format("INSERT INTO Log (" +
"Location, " +
"Drug, " +
"Quantity, " +
"Strength, " +
"Initials, " +
"'Date'," +
"add_Remove" +
") VALUES (" +
comboBox1.Text,
comboBox2.Text,
int.Parse(textBox1.Text),
int.Parse(textBox1.Text),
textBox3.Text,
textBox2.Text,
addRemove);
【问题讨论】:
-
你没有错过占位符吗?
{0}? -
"insert" or "not insert"是指插入还是更新? -
您使用的是什么数据库?你知道你可以在创建数据库时添加自动增量选项。
-
第一个将起作用,未经编辑,只要没有两个相同的字段。如果我可以修复错误消息,第二个示例似乎也可以正常工作。
-
@MilkyWayJoe 是对的;您正在使用
Format,但在第二个版本中没有格式占位符。第二个也没有像第一个那样正确地引用字符值或使用#字符格式化日期值。
标签: c# ms-access autonumber