C# 甲骨文:插入后获取RowId
亲爱的各位 我试图在插入后返回Oracle 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,
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");