Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 甲骨文:插入后获取RowId_C#_Oracle_Insert_Rowid - Fatal编程技术网

C# 甲骨文:插入后获取RowId

C# 甲骨文:插入后获取RowId,c#,oracle,insert,rowid,C#,Oracle,Insert,Rowid,亲爱的各位 我试图在插入后返回Oracle RowId,但结果总是空的(即使插入是正确的)。 为什么?怎么了 您可以在下面找到代码: cmd.CommandType = CommandType.Text; cmd.AddParameter("ROWINSERTED", string.Empty, DBTypes.NVarchar2, ParameterDirection.InputOutput); cmd.CommandText = $@"INSERT INTO EQUIPVAR(ID_VAR,

亲爱的各位

我试图在插入后返回Oracle RowId,但结果总是空的(即使插入是正确的)。 为什么?怎么了

您可以在下面找到代码:

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();
我正在参数行插入中等待结果


提前感谢。

以下是您如何使用Dapper(nuget软件包)实现这一点:

DynamicParameters参数=新的DynamicParameters();
parameters.Add(“out_id”,dbType:dbType.Decimal,direction:ParameterDirection.Output);
执行($@“INSERT-INTO-EQUIPVAR(ID_-VAR,ID_-QU,XTGYREVAVALUE)值(1,1,“TEST”),将rowid返回到:out_-ID”,参数);
int id=(int)参数.Get(“out_id”);

为什么需要rowid?表本身是否没有唯一的引用?如果不是-应该是。不幸的是,该表没有唯一的引用,我无法更改它。。。。
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");