永发信息网

怎么在C#代码中获得Oracle 数据的序列

答案:5  悬赏:10  手机版
解决时间 2021-03-24 16:59
怎么在C#代码中获得Oracle 数据的序列
最佳答案
SQL 中@@identity是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。
因此C# 代码可如下进行处理,在插入后,立即取出@@identity值:
private static string AddRecordReturnNewID()
{ //二条语句一起执行,前一句是插入,后一句是取自增值
string sql = @"insert into [dbo].[Test1122] values(@Name,@Age);
select @ID=@@IDENTITY;";
SqlParameter[] para =
{
new SqlParameter("@Name", SqlDbType.NVarChar,20),
new SqlParameter("@Age", SqlDbType.Int),
new SqlParameter("@ID", SqlDbType.Int)
};
para[0].Value = "Nova";
para[1].Value = 24;
para[2].Direction = ParameterDirection.Output; //指示是返回值
DBHelper.ExecuteNonData(sql, para);
return para[2].Value.ToString(); //获取自增值
}
全部回答
select Seq_Base_Wareclass.Nextval as NNN from dual
然后, 用DataReader读出来
int nextVal = int.Parse(dataReader[0].toString());
直接 int.Parse("Seq_Base_Wareclass.Nextval ") 的话, “Seq_Base_Wareclass.Nextval” 这个字符串是不会转成int的。
这个Seq_Base_Wareclass.Nextval 是sql语句,要用command对象执行取返回结果。
用OracleCommand执行你这句SQL的ExecuteScalar
你的代码是怎样的?
如果是取值的话,应该执行sql
select Seq_Base_Wareclass.Nextval from dual
然后或者第一行第一列的值就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
旭日汽车维修中心地址在什么地方,我要处理点
2013.12.10从长乐飞往澳大利亚的航班
已知线段b和∠α,用尺规作一个三角形,使它
这能吃鸡我怎么不信呢?
巴特综合症能喝酒吗?
菊花的生长地,花期,用途,传说
“闻道梅花圻晓风”中“ 圻”字怎么读?
宁夏著名的酒类品牌有哪些
株洲国金证券营业部地址
结婚的时候想把胳膊上的纹身挡上怎么弄
1999 0917纹身罗马数字
一台电脑的两个用户能否使用两个系统
下图表示某地区“最冷月等温线”和图中“河流
20015年农历2月18日黄历
为什么我那么讨厌别人说“哦”? 我很反感 是
推荐资讯
二战期间,英国首相丘吉尔在说明同苏联结成反
吴京演少林寺的是什么电视剧
用苹果助手导入铃声的时候出现这种情况,怎么
什么马鲷比较好看,一缸内适合养多少
一副国外油画 一对恋人坐在秋千上
停车场(乌兰牧骑小区西南)地址在什么地方,想
镇江自助火锅有哪些,价格怎么样?
重庆人喜欢用石菖蒲做香料吗?
罗田县城南幼儿园地址在什么地方,我要处理点
人们常说的咖喱和吃烤羊肉串的孜盐是一个东西
请问有那位高手知道TYPEY2-112M-4是什么电机
三本学生参加南京航空航天大学招飞
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?