您好我正在尝试连接Oracle并将参数作为存储过程的一部分发送。我的两个参数是空字符串,所以我需要传递空值,但数据类型在db端设置为数字。当我运行脚本时,它给出了错误“对象无法从DBNull转换为其他类型”。
这是我的代码片段记住字符串Case,字符串SRE_Pricing以“”形式出现。所以我需要转换为数字,如果有任何文本,如“52”,如果“”然后分配DB null。
<input type="hidden" name="PostcodeData[@code.Id].Serialized" />
答案 0 :(得分:0)
您需要在&&
条件中使用||
运算符而不是if
if (SRE_Pricing != null && SRE_Pricing != "")
{
SRE_pricingParam.Value = Convert.ToInt32(SRE_Pricing);
}
else
{
SRE_pricingParam.Value = DBNull.Value;
}
最好使用Int32.TryParse()
int price;
if (Int32.TryParse(SRE_Pricing, out price))
{
SRE_pricingParam.Value = price;
}
else
{
SRE_pricingParam.Value = DBNull.Value;
}