access没办法,如果是用MSSQL的话,可以用存储过程返回@@IDENTITY的值。

解决方案 »

  1.   

    楼上的正
    不过你可以在做一次查询取回最大的id值即新增的ID号
      

  2.   

    SqlCommand command=new SqlCommand("select @@IDENTITY",con);
    decimal meterid=(decimal)command.ExecuteScalar();
      

  3.   

    //获取刚插入数据库记录的ID
    sql = "insert into table1 (columns1,columns2) values ('1',abc);select @@identity as 'id'";
    int i = Convert.ToInt32(Command.ExecuteScalar());
      

  4.   

    用一解决方案,在这个表中加一个flag字段 为long
    在insert时,用程序自动生成一个的GUID,
    然后用select id where  flag= 此GUID
      

  5.   

    建议在写入数据库前给当前用户分配一个ID,该ID实现可以自己定义.
    每写入数据库后,加多一个字段为用户ID,
    然后读取该ID用户的最大ID的记录即为刚添加的记录
      

  6.   

    to meetweb(niky):
      你的想法好极了,好像还可以解决并发问题
      

  7.   

    select top 1  id from tablenmae order by id desc
      

  8.   

    我的想法有点拙劣:插入进去,某个字段有个特殊的值保证全局唯一。比如guid。
    然后查选,几句是刚刚的guid。
    然后更新,完成我们实现的插入操作完成的内容。
      

  9.   

    “几句是刚刚的guid。”-》“依据是刚刚的guid”
      

  10.   

    insert into tableA(fieldA) values('fieldA');
    if @@error=0 select @@identity
    else select -1
      

  11.   

    SqlCommand command=new SqlCommand("select @@IDENTITY",con);
    decimal meterid=(decimal)command.ExecuteScalar();