我在oracle数据库表中建了id,设置为主键,自增序列。
现在我想在程序中把这个自增的id值保存到session中,怎么写呢?
谢谢!~如:
str_insert=@"insert into ywxx(id,xingming) values(id.nextval,'"+xingming+"')";
dbhelperora.query(str_insert);
session.add("id",________);横线处代码如何写啊?求教高手!~!~!谢谢~!

解决方案 »

  1.   

    oracle不知道,sqlserver里可以return @@identity变量,就可以获取当前的自增列值,oracle应该原理差不多
      

  2.   

    SQL SERVER中的三种获得自增长ID的方法 
    例子:
          insert into users(Code,name) values('1111','aaaa')
          select  SCOPE_IDENTITY()
          select  @@IDENTITY
          select  IDENT_CURRENT('users')
    返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块――存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。 
    IDENT_CURRENT(表名)
    返回为任何会话和任何作用域中的指定表最后生成的标识值。这个函数需要一个以表名为值的变量,也就是说虽然不受会话和作用域的限制,却会受到表的限制。@@IDENTITY返回最后插入的标识值。
      

  3.   

    我用的oracle里面没有自增列呢,用的是sequence,可以取seq.curval
      

  4.   

    select SEQ.nextval from dualSEQ是你用的序列名。
      

  5.   

    我想问的是在我把这条记录存入数据库同时,也把id保存到session中,怎么操作呢?谢谢了我写的是session.add("id",id.currval); 调试时提示:int中currval未定义
      

  6.   

    select SEQ.nextval from dual   这是一条sql语句!SEQ是你用的序列名。插入前先取序列值啊,这个序列值就是你要的ID,然后session["id"]=val;就行了