gpt4 book ai didi

c# - 使用 ExecuteNonQuery 时如何从 OracleParameter 对象获取字符串值

转载 作者:行者123 更新时间:2023-11-30 22:22:07 30 4
gpt4 key购买 nike

如下代码所示,我想在数据库表(oracle 11)中插入一行并返回插入行的String-Value

using (OracleCommand cmd = con.CreateCommand()) {
cmd.CommandText = "insert into foo values('foo','bar') returning idString into :lastIdParam";
cmd.Parameters.Add(new OracleParameter("lastIdParam", OracleDbType.Varchar2), ParameterDirection.ReturnValue);
cmd.ExecuteNonQuery(); // returning 1 (insert row successfully)

var result = cmd.Parameters["lastIdParam"].Value.ToString(); // == String.Empty
}

调试显示 lastIdParam.Value 的值 = Empty.String: enter image description here

我的问题是,我没有将返回字符串放入我的返回参数,但它会在返回整数值(如插入的 id 的序列号)时起作用。类型转换问题? ...?

如果直接运行语句(或者如果我只是执行类似returning 'ABC' into :myOutputParameter

的操作,idString 将被填充

插入行后如何检索字符串的任何想法?

最佳答案

您是否尝试过为参数设置大小?默认大小为 0。

new OracleParameter("lastIdParam", OracleDbType.Varchar2, 128)

关于c# - 使用 ExecuteNonQuery 时如何从 OracleParameter 对象获取字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992993/

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