sdr是我的sqldatareader,我想检查十进制类型的curPrice值是否为null。
inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7);
这是我收到的错误消息:
不能隐式转换类型‘十进制?’到“十进制”存在显式转换(是否缺少强制转换?)
我哪里出问题了,请有人告诉我。
发布于 2012-05-09 21:00:11
要么将curPrice
转换为可空,要么使用可空类型的.Value属性。
如果curPrice
是类的一个属性,那么
public decimal? curPrice
{
get;
set;
}
发布于 2016-09-29 18:58:05
inrec.curPrice = sdr.GetValueOrDefault(0m)
由于左侧(Price
)不允许null
,所以不能将其值设置为可能是null
的值。因此,使用.GetValueOrDefault(decimal defaultValue)
在null
时返回默认值。
发布于 2012-05-09 21:02:19
如何将decmial?
类型转换为decimal
?
当inrec.curPrice
为null时,您必须拥有喜欢的sdr.GetDecmial(7)
值。
inrec.curPrice = sdr.GetDecimal(7) ?? 0M;
如果返回的内容为null,我假设您希望使用0。如果没有,则将0M
更改为其他十进制值。
--重播后的最新情况
inrec.curPrice = sdr.IsDBNull(7) ? 0M : sdr.GetDecimal(7);
怎么样?
https://stackoverflow.com/questions/10523885
复制相似问题