数据库插入语句在本地测试ok,但用到客户机器上报错

kaizi_sun 2009-04-30 09:37:47
如题,语句是insert into 表()values().报的错是number of query values and destination fields are not the same.
自己感觉这错是位置对不上才报的,数据库用的是access,我这拷给他们的。真是很奇怪,我在本地用很多机器测试都ok, 唯一的区别是客人在荷兰的,用的系统也是xp,不知道是不是跟语言环境有关系.请高手帮忙分析下:
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaizi_sun 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 y9313 的回复:]
曾经见过说是国外机子的日期格式和国内的不一样
随便猜猜....
关注中
[/Quote]
这个也是个因数,我改下自己的试试。不过可能性很小应该,自己感觉!有人遇到过么?
y9313 2009-05-05
  • 打赏
  • 举报
回复
曾经见过说是国外机子的日期格式和国内的不一样
随便猜猜....
关注中
kaizi_sun 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 oooooooooooooaaa 的回复:]
('" + TxTserialnumber.Text + "','" + tables[p] + "','" + n + "'," + l + " ,'" + m + "','" + res + "','" + DateTime.Now.ToShortDateString() + "','" + k + "','" + dishcount + "')" ,看看这段字符串是否拼对了,打开荷兰人的access,见个sql窗口,将那段insert语句放到access中运行一下,看是否报错
[/Quote]

谢谢啊,我主要是去不了荷兰,要不然这问题应该很容易找到了。我会叫那边测试发个数据上传语句的内容再研究下。谢谢你
YYBYYB1984 2009-04-30
  • 打赏
  • 举报
回复
两边的机器有些配置肯定不一样。
kaizi_sun 2009-04-30
  • 打赏
  • 举报
回复
help!!
kaizi_sun 2009-04-30
  • 打赏
  • 举报
回复
"insert into dynamicbill(serialnumber,tablenumber,foodname,price,share,Totalprice,OrderDishesTime,tebie,dishcount) values('" + TxTserialnumber.Text + "','" + tables[p] + "','" + n + "'," + l + " ,'" + m + "','" + res + "','" + DateTime.Now.ToShortDateString() + "','" + k + "','" + dishcount + "')"
这是我的那个语句。请帮忙分析下
jingsong2008 2009-04-30
  • 打赏
  • 举报
回复
这个问题其实与自动增加字段无关,原因在于你没有给出字段列表。那条错误信息的意思是给出的数据的数量与数据表中实际的字段数量不匹配。假设你的数据表有1、2、3、4、5个字段,其中1是自动增加字段;但是你的语句中只给出了2、3、4、5字段的4个字段值,但系统期待是5个值,就会出这样的错误了。解决办法就是列出2、3、4、5这四个字段的名称,与给出的数据对应就可以了。
正解!
蓝海D鱼 2009-04-30
  • 打赏
  • 举报
回复
INSERT INTO的语法应该是:
INSERT INTO tablename [(fieldname{[, fieldname]})] VALUES (fielddata{[,fielddata]})
如果不指定fieldname的列表,那么后面fielddata中数据出现的顺序必须与数据库表中字段的顺序一模一样;如果指定了fieldname列表,就只需要在fielddata中给出对应于fieldname列表的数据(顺序与fieldname列表的顺序一致即可。


在fieldname列表中列出除了自动增加字段之外的其他需要更新的字段,然后在fielddata列表中逐一对应地提供数据即可。

这个问题其实与自动增加字段无关,原因在于你没有给出字段列表。那条错误信息的意思是给出的数据的数量与数据表中实际的字段数量不匹配。假设你的数据表有1、2、3、4、5个字段,其中1是自动增加字段;但是你的语句中只给出了2、3、4、5字段的4个字段值,但系统期待是5个值,就会出这样的错误了。解决办法就是列出2、3、4、5这四个字段的名称,与给出的数据对应就可以了。
kaizi_sun 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xu54647265 的回复:]
明显是个数不匹配
[/Quote]

这个我也知道啊,但关键是同一个mdb我在本地已经测试过不同类型的电脑,是ok的。
但客人那也测试几台说都会有此错,所以很奇怪。现在又不现实跑过去,哎~~~干急。
hhlys 2009-04-30
  • 打赏
  • 举报
回复
关注中。。。
xu54647265 2009-04-30
  • 打赏
  • 举报
回复
明显是个数不匹配
justindreams 2009-04-30
  • 打赏
  • 举报
回复
改一下,写成参数形式
你这样,如果某一个输入域里面添加了逗号(,)或者单引号('),就肯定出错。
oooooooooooooaaa 2009-04-30
  • 打赏
  • 举报
回复
('" + TxTserialnumber.Text + "','" + tables[p] + "','" + n + "'," + l + " ,'" + m + "','" + res + "','" + DateTime.Now.ToShortDateString() + "','" + k + "','" + dishcount + "')" ,看看这段字符串是否拼对了,打开荷兰人的access,见个sql窗口,将那段insert语句放到access中运行一下,看是否报错
kaizi_sun 2009-04-30
  • 打赏
  • 举报
回复
是啊,问题估计就是这样子,但真不知道哪里会影响到这里。哎~~

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧