【发布时间】:2019-07-12 21:06:14
【问题描述】:
我正在为模型赋值。其中一些值可以为空。我尝试了几种方法来处理 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++]);
似乎不处理空值
【问题讨论】:
-
你试过了吗:
dataFromFile.Tables[0].Rows[i][j++] == null? -
@Stefan 是的,刚刚尝试过。得到相同的错误“对象不能从 DBNull 转换为其他类型”
-
这些数据是从哪里来的?看起来它是从文件中读取的。是字符串数据吗?应该是
string.IsNullOrWhiteSpace(dataFromFile.Tables[0].Rows[i][j++]) ? 0.0 : .. -
除非它的值是实际的
"NULL"或"NILL"或类似的东西。 -
您意识到
j++最多执行两次,对吧?因此,当它不为空时,您正在获取下一行(现在可能为空)。