use*_*384 9 c# dbnull casting explicit-conversion
sdr是我的sqldatareader,我想检查一个十进制类型的curPrice值是否为null.
inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7);
这是我收到的错误消息:
无法隐式转换类型'decimal?' 到'十进制'.存在显式转换(您是否错过了演员?)
哪里出错了,请有人告诉我.
Kis*_*mar 12
要么转换curPrice为nullable,要么使用可空类型的.Value属性.
如果curPrice是一个类的属性那么
public decimal? curPrice
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
inrec.curPrice = sdr.GetValueOrDefault(0m)
Run Code Online (Sandbox Code Playgroud)
由于左侧(Price)不允许,null因此您无法将其值设置为可能的值null。因此,.GetValueOrDefault(decimal defaultValue)当时使用来返回默认值null。