该ID是作为主键的 。
有朋友说使用OleDbParameter的ParameterDirection指定为Output,我试了一下,没有成功。
各位有什么办法吗?

解决方案 »

  1.   

    有个笨办法,既然是自动生成的,如果是每次增1的话,那你就取max(id)就可以了
      

  2.   

    我也想过这个办法,但需要重新查询一次,而且不是很严密,如果同时有多个插入操作的话估计就会出问题了,使用SqlDbParameter.Direction那样可以在存储过程里面来设置返回值,但Access里面不知道怎么弄,是不是不支持亚?
      

  3.   

    ncowboy,能否写的更具体一点?
      

  4.   

    dim sql as string="insert into.....;select @@identity as 'aaa'"dim command as new(sql,connection对象)
    dim id as integer=command.executescalar
      

  5.   

    你紧接着inser以后,然后select @@identity , 得到的就是你的结果
      

  6.   

    ="insert into.....;select @@identity as 'aaa'";
    ...
    {"在 SQL 语句结尾之后找到字符。" }
      

  7.   

    Select @@identity 操作对SqlServer是可以的,但我对access操作的时候就得出违例:
    {"在 SQL 语句结尾之后找到字符。" }
    难道是Access不支持?
      

  8.   

    access不能用@@identity。只能重新查询,为防止多人操作,给一个自己的标记栏,比如是插入时的时间,然后按这个时间再去查询max(id)
      

  9.   

    还是用SQL 吧,呵.如果可能的话