向ACCESS数据库插入记录时碰到的简单问题

时间:2022-07-04 21:45:03
我要想ACCESS表中同时插入两条记录,语句如下:
sql = INSERT INTO aa(a1,a2)values('10000010','4');INSERT INTO aa(a1,a2)values('10000011','5');
这个语句是在一个事务里执行的,但是执行的时候报错说:在SQL语句结尾之后找到字符。
有谁知道这是什么原因。

11 个解决方案

#1


sql = INSERT INTO aa(a1,a2)values('10000010','4');INSERT INTO aa(a1,a2)values('10000011','5');
这句话写得好生奇怪啊
;是C#分行符,这样行吗?而且sql是个字符串,后面的也没加引号,能通过?

#2


sql = INSERT INTO aa(a1,a2)values('10000010','4');INSERT INTO aa(a1,a2)values('10000011','5') 把最后一个分号去掉看看,我觉得应该是可以的

#3


提示的很清楚 了

#4


问题解决了吗?
楼主,没解决的话,再说出接下来的错误啊?

#5


就没有这样写的

#6


把后面的引号去掉也是一样的错误提示

#7


还有,在SQLSERVER数据库里执行这样的语句是可以的

#8


刚刚又去查了点资料,好象说MDB中不支持多条SQL语句的,不知道是不是真的

#9


在ACCESS数据库里同事插入多条记录好像是不可以的,但是可以这样解决:
用For循环就可以了。
for(int i=0;i<记录条数;i++)
{
    INSERT INTO aa(a1,a2)values('ID值','Value值');
}
如果要使写死的话那就更好办了,
for(int i=0;i<记录条数;i++)
{
    if(i==0)
    {
      INSERT INTO aa(a1,a2)values('ID值','Value值');
    }
    else if(i==1)
    {
      INSERT INTO aa(b1,b2)values('ID值1','Value值1');
    }
}

#10


因为我前台业务处理的时候是把sql语句放在一起的,每句之间用分号分开,然后把整段SQL语句作为参数传到执行方法中作为一个事务执行。
所以每次传过来的SQL中的语句条数并不固定,有时候是一条,有时候是几条INSERT,有时候是几条UPDATE,有时候是几条DELETE,也或者是夹杂着INSERT和UPDATE语句的。所以很难使用循环来拆分他。
以前在SQLSERVER里面根本就不用管的,只要用分号分开就可以直接执行的。在这里的话我想不出好的办法来判断拆分他

#11


总算解决了,来者有分

#1


sql = INSERT INTO aa(a1,a2)values('10000010','4');INSERT INTO aa(a1,a2)values('10000011','5');
这句话写得好生奇怪啊
;是C#分行符,这样行吗?而且sql是个字符串,后面的也没加引号,能通过?

#2


sql = INSERT INTO aa(a1,a2)values('10000010','4');INSERT INTO aa(a1,a2)values('10000011','5') 把最后一个分号去掉看看,我觉得应该是可以的

#3


提示的很清楚 了

#4


问题解决了吗?
楼主,没解决的话,再说出接下来的错误啊?

#5


就没有这样写的

#6


把后面的引号去掉也是一样的错误提示

#7


还有,在SQLSERVER数据库里执行这样的语句是可以的

#8


刚刚又去查了点资料,好象说MDB中不支持多条SQL语句的,不知道是不是真的

#9


在ACCESS数据库里同事插入多条记录好像是不可以的,但是可以这样解决:
用For循环就可以了。
for(int i=0;i<记录条数;i++)
{
    INSERT INTO aa(a1,a2)values('ID值','Value值');
}
如果要使写死的话那就更好办了,
for(int i=0;i<记录条数;i++)
{
    if(i==0)
    {
      INSERT INTO aa(a1,a2)values('ID值','Value值');
    }
    else if(i==1)
    {
      INSERT INTO aa(b1,b2)values('ID值1','Value值1');
    }
}

#10


因为我前台业务处理的时候是把sql语句放在一起的,每句之间用分号分开,然后把整段SQL语句作为参数传到执行方法中作为一个事务执行。
所以每次传过来的SQL中的语句条数并不固定,有时候是一条,有时候是几条INSERT,有时候是几条UPDATE,有时候是几条DELETE,也或者是夹杂着INSERT和UPDATE语句的。所以很难使用循环来拆分他。
以前在SQLSERVER里面根本就不用管的,只要用分号分开就可以直接执行的。在这里的话我想不出好的办法来判断拆分他

#11


总算解决了,来者有分