将空字符串转换为数字时出现DBnull问题

时间:2018-06-13 13:32:58

标签: asp.net

您好我正在尝试连接Oracle并将参数作为存储过程的一部分发送。我的两个参数是空字符串,所以我需要传递空值,但数据类型在db端设置为数字。当我运行脚本时,它给出了错误“对象无法从DBNull转换为其他类型”。

这是我的代码片段记住字符串Case,字符串SRE_Pricing以“”形式出现。所以我需要转换为数字,如果有任何文本,如“52”,如果“”然后分配DB null。

<input type="hidden" name="PostcodeData[@code.Id].Serialized"  />

ASP.NET MVC Binding to a dictionary

1 个答案:

答案 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;
}