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

解决方案 »

  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.   

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

  4.   

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

  5.   

    在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');
        }
    }
      

  6.   

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