gpt4 book ai didi

c# - 将 OracleParameter.Value 转换为 Int32

转载 作者:IT王子 更新时间:2023-10-29 04:15:24 25 4
gpt4 key购买 nike

我有一个这样的存储过程调用:

using (OracleConnection con = new OracleConnection(ConfigurationManager.AppSettings["Database"]))
using (OracleCommand cmd = new OracleCommand("Package.Procedure", con))
{
Int32 existsCount;

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("successCount", OracleDbType.Int32, 0, ParameterDirection.InputOutput);
cmd.Parameters.Add("BusinessId", OracleDbType.Int64, listRec.BusinessId, ParameterDirection.Input);

con.Open();
cmd.ExecuteScalar();
con.Close();

existsCount = Convert.ToInt32(cmd.Parameters["successCount"].Value);

return (existsCount);
}

但是在这条线上:

existsCount = Convert.ToInt32(cmd.Parameters["successCount"].Value);

它抛出异常“无法将‘Oracle.DataAccess.Types.OracleDecimal’类型的对象转换为‘System.IConvertible’类型。”

有什么想法吗?谢谢。

最佳答案

你也可以试试:

Oracle.DataAccess.Types.OracleDecimal d = (Oracle.DataAccess.Types.OracleDecimal)cmd.Parameters["successCount"].Value;

if( d.IsNull )
existsCount = 0;
else
existsCount = d.ToInt32( );

关于c# - 将 OracleParameter.Value 转换为 Int32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026036/

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