本文介绍了将 OracleParameter.Value 转换为 Int32的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的存储过程调用:
I have a stored procedure call that goes like this:
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'."
It throws the Exception "Unable to cast object of type 'Oracle.DataAccess.Types.OracleDecimal' to type 'System.IConvertible'."
有什么想法吗?谢谢.
推荐答案
怎么样
existsCount = int.Parse(cmd.Parameters["successCount"].Value.ToString());
这篇关于将 OracleParameter.Value 转换为 Int32的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!