我正在为模型分配值。其中一些值可以为null。我尝试了几种方法来处理DBNull值,但仍然出现错误
dPbtbud.Xfer = dataFromFile.Tables[0].Rows[i][j++] == DBNull.Value ?
0.0 :
Convert.ToDouble(dataFromFile.Tables[0].Rows[i][j++]);
也尝试过
dPbtbud.Xfer = dataFromFile.Tables[0].Rows[i][j++] is DBNull ?
0.0 :
Convert.ToDouble(dataFromFile.Tables[0].Rows[i][j++]);
似乎无法处理空值
答案 0 :(得分:0)
我的建议是创建一个扩展方法来检查null和DBNull:
namespace Helper
{
public static class ConvertEX1
{
public static object IsNull<T>(this object obj, T def) where T : struct
{
if (obj == null || obj == DBNull.Value)
return (T)Convert.ChangeType(def, typeof(T));
return (T)Convert.ChangeType(obj, typeof(T));
}
}
}
不要忘记在使用函数的每个.cs
文件中导入名称空间:
using Helper;
...
dPbtbud.Xfer = (double)dataFromFile.Tables[0].Rows[i][j++].IsNull(0.0);