不正常地定义了参数对象。提供了不一致或者不完整信息

BeRoy 2006-07-31 11:39:47
我在程序里向ACCESS数据库插入纪录,出错了,大家帮我找找原因:

insert into PLAYER values(1,'TanKS',1607,105.59,'00:15:13',2,0,2,'Random');
正常
insert into PLAYER values(1,'`Kyo',1806,118.7,'00:15:12',3,0,3,'Random');
出错:
不正常地定义了参数对象。提供了不一致或者不完整信息
为什么?
...全文
444 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
BeRoy 2006-08-01
  • 打赏
  • 举报
回复
多谢2位!
------------------------------------------
好的习惯是带有目标表的字段列表
------------------------------------------
非常同意!

你们猜问题怎么解决的?

insert into PLAYER values(1,'`Kyo',1806,118.7,'00:15:12',3,0,3,'Random');

我把'00:15:12'中的冒号改成全角的冒号就不报错了.
wwwwb 2006-07-31
  • 打赏
  • 举报
回复
测试了一下,在INSERT INTO 中可以用“`”
BeRoy 2006-07-31
  • 打赏
  • 举报
回复
测试了一下
insert into PLAYER values(1,'`Kyo',1806,118.7,'00:15:12',3,0,3,'Random');
出错
insert into PLAYER values(1,'Kyo',1806,118.7,'00:15:12',3,0,3,'Random');
正常

似乎那个'`Kyo'中的“`”是个特殊字符?请问该如何避免?
wwwwb 2006-07-31
  • 打赏
  • 举报
回复
1、检查表的主键设置;
2、检查表中各字段的有效性设置。
OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
好的习惯是带有目标表的字段列表,这样便于维护,日后即使表的字段顺序改变了,系统也不会出错。
wwwwb 2006-07-31
  • 打赏
  • 举报
回复
表的字段顺序
BeRoy 2006-07-31
  • 打赏
  • 举报
回复
TO wwwwb()
1 这个表我没有设置主键
2 我是用ACCESS创建的表结构,各字段都没有设置有效性规则
wwwwb 2006-07-31
  • 打赏
  • 举报
回复
insert into PLAYER(NAME,ID) values(2,'`')
就没有问题了。
可我还是想不通为什么
insert into PLAYER values(2,'`',1806,118.7,'00:15:12',3,0,3,'Random');
就不行?
检查表的字段顺序
wwwwb 2006-07-31
  • 打赏
  • 举报
回复
你是对的,insert into PLAYER(NAME,ID) values(2,'`')
就没有问题了。
可我还是想不通为什么
insert into PLAYER values(2,'`',1806,118.7,'00:15:12',3,0,3,'Random');
就不行?

1、检查表的主键设置;
2、检查表中各字段的有效性设置。
BeRoy 2006-07-31
  • 打赏
  • 举报
回复
你是对的,insert into PLAYER(NAME,ID) values(2,'`')
就没有问题了。
可我还是想不通为什么
insert into PLAYER values(2,'`',1806,118.7,'00:15:12',3,0,3,'Random');
就不行?
OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
新建一个表,只需一个文本字段,执行:

insert into 表名(字段名) values('`Kyo');

BeRoy 2006-07-31
  • 打赏
  • 举报
回复
wangtiecheng 谢谢你
PLAYER 表的第二个字段的数据类型是文本类型
OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
写insert into 语句时,最好带上要追加的目的表字段列表,这样便于维护,即使表中字段顺序变了,也不会导致系统出错。

另外,检查PLAYER 表的第二个字段的数据类型。
BeRoy 2006-07-31
  • 打赏
  • 举报
回复
语法没有问题,字符"`"也可以作为串的一部分保存到表中。
----------------------------------------------------------------------------
insert into PLAYER values(2,'`',1806,118.7,'00:15:12',3,0,3,'Random');

就报错了,怎么我这里就不能包含 “`” 了?
OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
楼主可以试一下,新建一个表,只需一个文本字段,执行:

insert into 表名(字段名) values('`Kyo');

应该不会有问题。

写insert into 语句时,最好带上要追加的目的表字段列表,这样便于维护,即使表中字段顺序变了,也不会导致系统出错。



OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
串中包含引号要用转义,时间用##。
OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
如果不需要保存此字符,可以通过过滤字符串来处理。

OracleRoob 2006-07-31
  • 打赏
  • 举报
回复
insert into PLAYER values(1,'`Kyo',1806,118.7,'00:15:12',3,0,3,'Random');


语法没有问题,字符"`"也可以作为串的一部分保存到表中。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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