2013-04-08 65 views
1

我试图将我的数据库中出现的一些数字以十进制格式表示为一天中的一小部分。这些时间可以在某些情况下,虽然空,所以我想利用这个方法来解释,但我得到我的应用程序生成错误,NAMEL:”不能从十进制转换为双精度“

“的最佳重载的方法匹配” system.TimeSpan .FromDays(双)”有一些无效参数”

“ARGUMENT1:不能从转换 '小数' 到 '双'”

有没有一种方法可以解决这个问题?

time1 = reader.IsDBNull(4) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(4)), 
time2 = reader.IsDBNull(5) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(5)), 
time3 = reader.IsDBNull(6) ? TimeSpan.Zero : TimeSpan.FromDays(reader.GetDecimal(6)), 

回答

2

类型decimal不能隐式转换为double。您可以明确地施放它:

time1 = 
    reader.IsDBNull(4) ? 
    TimeSpan.Zero : 
    TimeSpan.FromDays((double)reader.GetDecimal(4)) 

十进制是表示天数的DB类型的不寻常选择。我建议你确保专栏确实代表了这一点。

+0

结果发现我的查询出了问题,我没有做我需要的左连接。但是感谢明确的双重播放方法。 – Lorenzo 2013-04-08 20:07:36