C#oracle:插入后获取RowId

时间:2018-11-08 10:38:06

标签: c# oracle insert rowid

亲爱的

我试图在插入后返回 Oracle RowId ,但结果始终为null(即使Insert正确)。 为什么?怎么了?

在下面,您可以找到代码:

cmd.CommandType = CommandType.Text;
cmd.AddParameter("ROWINSERTED", string.Empty, DBTypes.NVarchar2, ParameterDirection.InputOutput);
cmd.CommandText = $@"INSERT INTO EQUIPVAR(ID_VAR, ID_QU, XTGYREVAVALUE) VALUES(1, 1, 'TEST') RETURNING rowid INTO :ROWINSERTED";                
var res = cmd.ExecuteScalar();

我在参数 ROWINSERTED

中等待结果

谢谢。

1 个答案:

答案 0 :(得分:1)

以下是使用Dapper(nuget程序包)的方法:

DynamicParameters parameters = new DynamicParameters();
parameters.Add("out_id", dbType: DbType.Decimal, direction: ParameterDirection.Output);
database.Execute($@"INSERT INTO EQUIPVAR(ID_VAR, ID_QU, XTGYREVAVALUE) VALUES(1, 1, 'TEST') RETURNING rowid INTO :out_id", parameters);
int id = (int)parameters.Get<decimal>("out_id");