string sql = "insert into table1(,............);select @@identity";
执行这个sql,可以获取插入的值

解决方案 »

  1.   

    c#没有类似的函数,要实现的话,就在insert的sql语句后加上一句select,把主键选出来作为返回值。
      

  2.   

    select @@identity is right
      

  3.   

    Retrieving the Identity value from a Jet database is different from that of SQL Server, because a Jet database does not support multi-statement batch commands. 
    我用的就是access,同时的多状态执行没办法在access实现。这样的话,情况就要比操作sql server复杂很多。
    ms的一些说明和范例。
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;816112
    主要就是利用了DataAdapter的RowUpdated事件。保证事务并发时不会有取值错误。但是,这样的方法总感觉效率不高。还没有看到具体使用的情况。也不好完全下结论。
    这里也有一个类似的参考
    http://www.error-bank.com/microsoft.public.dotnet.languages.vb.1/147873_Thread.aspx