gpt4 book ai didi

c# - 如何使用 ExecuteScalar 从插入的行中获取生成的 ID?

转载 作者:可可西里 更新时间:2023-11-01 07:50:14 24 4
gpt4 key购买 nike

我知道在 Oracle 中,我可以从插入的行中获取生成的 ID(或任何其他列)作为输出参数。例如:

insert into foo values('foo','bar') returning id into :myOutputParameter

有没有办法做同样的事情,但使用 ExecuteScalar 而不是 ExecuteNonQuery?

我不想使用输出参数或存储过程。

ps:我用的是Oracle,不是sql server!!!

最佳答案

如果你在oracle上,你必须使用ExecuteNonQuery和ResultParameter。无法将其写为查询。

using (OracleCommand cmd = con.CreateCommand()) {
cmd.CommandText = "insert into foo values('foo','bar') returning id into :myOutputParameter";
cmd.Parameters.Add(new OracleParameter("myOutputParameter", OracleDbType.Decimal), ParameterDirection.ReturnValue);
cmd.ExecuteNonQuery(); // an INSERT is always a Non Query
return Convert.ToDecimal(cmd.Parameters["myOutputParameter"].Value);
}

关于c# - 如何使用 ExecuteScalar 从插入的行中获取生成的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com