用ADO.NET在Oracle表中插入记录后如何返回自增主键值? secquence是可以,而且速度快如果不会的话还可以用程序实现。select . update. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 拜托,各个给个例子,不要钓胃口啊,分不够可以开帖再送,sequence.currval要在用了sequence.nextval之后才有效,就是说在insert之后就调用sequence.currval值,不能分开执行,另外sequence的值不能用在where子句中。各位帮我想想办法吧 不行,返回主键值必须在插入语句之后立即执行,要不然就可能会有其他用户更新主键值,哪就不对了在SQL Server中可以这样实例OleDbCommand command=new OleDbCommand();command.Connection=connection;command.CommandText="Insert Into tablename(col1,col2) values(val1,val2); select * from tablename where keyCol=@@IDENTITY"; //晕,在Oracle该怎么办!!command.InsertCommand=command;他这里用了系统变量@@INDENTITY; 使用select 序列.nextval from dual; 主键的值是在插入触发器中调用sequence.nextval来添加的,而不是自己调用select sequence.nextval from dual获值后加入到表中的, 你用select sequence.nextval from dual不是能得到主健吗! 我也遇到过同样的问题,只是数据库系统并没有提供这样的系统变量。我的解决办法是:(1)在数据表中增加一个时间域,(2)插入记录前先用一个变量保存当前系统时间;(3)插入记录(4)查询该数据表,查询条件为该时间域。(timestamp的单位是百分之三秒) I don't know how to get identity in Oracle database, gz! 在Oracle中有一个数据类型UROWID,把变量定义为UROWID应该就可以了。 急,急,oracle语句出错,请修正下?? 怎样用progressbar这个控件来显示dataGriView读取和保存数据进度? 请教高手看看这种情况怎么用c#实现,想的我头都大了。 求一算法 求助:请教高手关于从状态栏右键关闭form窗体的问题。 关于OWC11 SQL语句的问题,帮我看看啊 PorpertyGrid 的键入事件如何捕获? 不算难的c#多线程问题!在线,送份儿! 水晶报表 求救:关于VS.net的安装 求助:用数据集DataSet 进行DataAdapter.UpData的错误 在线=.......
sequence.currval要在用了sequence.nextval之后才有效,就是说在insert之后就调用sequence.currval值,不能分开执行,另外sequence的值不能用在where子句中。各位帮我想想办法吧
在SQL Server中可以这样实例
OleDbCommand command=new OleDbCommand();
command.Connection=connection;
command.CommandText="Insert Into tablename(col1,col2) values(val1,val2); select * from tablename where keyCol=@@IDENTITY"; //晕,在Oracle该怎么办!!
command.InsertCommand=command;
他这里用了系统变量@@INDENTITY;
(1)在数据表中增加一个时间域,
(2)插入记录前先用一个变量保存当前系统时间;
(3)插入记录
(4)查询该数据表,查询条件为该时间域。(timestamp的单位是百分之三秒)