【发布时间】:2013-01-13 12:06:39
【问题描述】:
我想检查十进制数是否为 NULL 或它有一些值,因为该值是从类对象中的数据库分配的:
public decimal myDecimal{ get; set; }
然后我有
myDecimal = Convert.ToDecimal(rdrSelect[23].ToString());
我正在尝试:
if (rdrSelect[23] != DBNull.Value)
{
myDecimal = Convert.ToDecimal(rdrSelect[23].ToString());
}
但我得到了这个:
表达式的结果始终为“真”,因为值类型为 'decimal' 永远不等于 null
如何检查该十进制数是否具有某些值?
【问题讨论】:
-
Decimal是一个值类型。它永远不能为空。如果您的数据库中的列可以为空,那么它应该由Decimal?表示(这是System.Nullable<Decimal>的简写 -
如果
rdrSelect[23]在数据库中为空,Convert.ToDecimal将失败。 -
您是否阅读了错误消息。似乎比较清楚。
decimal不能为空,它总是有一个值。