c# 操作 Access数据库问题

foxd 2011-03-24 01:35:27
说明:tb_Rights 有number,name,type,IsPermit,description 这几个字段。下面的语句在使用Sql Server 2000数据库时一切正常:
txtOperatorCode.Text = "002";
sql = "Insert into tb_Rights Select '" + txtOperatorCode.Text + "',name,type,0,description from tb_Rights where number = 'SYSTEM'";

然而换成Access 2003数据库时运行,就会报错:Insert into ('002')语句中没有目的字段名。
请问各位该如何解决?谢谢!

...全文
105 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
niuxudong1 2011-03-24
  • 打赏
  • 举报
回复
那恐怕就是类型问题了,看看数据是不是符合要求。那个“false”换成0试试,我记得access里面的假是用0表示的。
foxd 2011-03-24
  • 打赏
  • 举报
回复
to niuxudong1:
我上面提到过用了以下的代码还是报错:INSERT INTO 语句的语法错误。
sql = "Insert into tb_Rights(number,name,type,ispermit,description) Select '" + txtOperatorCode.Text + "',name,type,false,description from tb_Rights where number = 'SYSTEM'";

这个代码与你的是一样的。
niuxudong1 2011-03-24
  • 打赏
  • 举报
回复
txtOperatorCode.Text = "002";
sql = "Insert into tb_Rights Select '" + txtOperatorCode.Text + "',name,type,0,description from tb_Rights where number = 'SYSTEM'";

你这里的txtOperatorCode.Text值不是002吗?type后面有个0,我指的0字段就是这个0对应的字段,002字段就是这个002对应的字段
foxd 2011-03-24
  • 打赏
  • 举报
回复
to niuxudong1:

Insert into tb_Rights(002字段,name,type,0字段,description)

我上面提到,tb_Rights表有number,name,type,IsPermit,description 这几个字段,哪儿有002字段、0字段?
niuxudong1 2011-03-24
  • 打赏
  • 举报
回复
我说的那个你试过了吗?我在自己电脑上试了一下,没问题的。
foxd 2011-03-24
  • 打赏
  • 举报
回复
请问此问题还有解吗?
niuxudong1 2011-03-24
  • 打赏
  • 举报
回复
Insert into tb_Rights(002字段,name,type,0字段,description)
Select '002',name,type,0,description from tb_Rights
where number = 'SYSTEM'
foxd 2011-03-24
  • 打赏
  • 举报
回复
在Rights表中已经有了几十条记录,这些记录的number字段的值均为'SYSTEM'。上面Sql语句的用意是,在Rights表中再插入相同条数的记录,只不过新插入的记录的number字段的值均为'002'。
兔子-顾问 2011-03-24
  • 打赏
  • 举报
回复
嗯。可不是么,语法错误。。。
insert into .... select ....
你想干嘛
foxd 2011-03-24
  • 打赏
  • 举报
回复
to MyNameIsPig:
按照您说的问题做了修改,一是去掉了表中的自增编号字段,又将sql语句修改为:
sql = "Insert into tb_Rights(number,name,type,ispermit,description) Select '" + txtOperatorCode.Text + "',name,type,false,description from tb_Rights where number = 'SYSTEM'";

可运行后还是报错:INSERT INTO 语句的语法错误。
niuxudong1 2011-03-24
  • 打赏
  • 举报
回复
Insert into tb_Rights Select

你在Select前面,把要插入的字段写在括号里就行了,要不然access会误认为你要插入到'002'这个列里
MyNameIsPig 2011-03-24
  • 打赏
  • 举报
回复
问题一:ACCESS中字段类型是不是自动编号。如果是的话是不能插入值的。
问题二:是否有“是/否”型字段,如果有的话在SQL里面是1或0表示,而在ACCESS中是true 或 false
foxd 2011-03-24
  • 打赏
  • 举报
回复
to f800051235:
I have try it, but still got a error message: INSERT INTO ('002') 语句中没有目的字段名。
foxd 2011-03-24
  • 打赏
  • 举报
回复
to amandag:
谢谢指教。但用你提供的代码后仍然报错:INSERT INTO 语句的语法错误。
如之奈何?
a12321321321312321 2011-03-24
  • 打赏
  • 举报
回复
不是你输入了非法字符,就是你字段名或者表明有关键字。

hava a try.

sql = "Insert into [tb_Rights] Select '" + txtOperatorCode.Text + "',[name],[type],0,[description] from tb_Rights where number = 'SYSTEM'";
foxd 2011-03-24
  • 打赏
  • 举报
回复
在Rights表中已经有了几十条记录,这些记录的number字段的值均为'SYSTEM'。上面Sql语句的用意是,在Rights表中再插入相同条数的记录,只不过新插入的记录的number字段的值为'002'。
amandag 2011-03-24
  • 打赏
  • 举报
回复
字段写全

sql = "Insert into tb_Rights(number,name,type,ispermit, description) Select '" + txtOperatorCode.Text + "',name,type,0,description from tb_Rights where number = 'SYSTEM'";

110,533

社区成员

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

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

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