1

我正在尝试以十进制格式提取我的数据库中出现的一些数字作为一天的分数。不过,在某些情况下,这些时间可能为空,因此我尝试使用此方法来解决此问题,但在我的应用程序中出现构建错误,即:

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

“Argument1:无法从 'decimal' 转换为 'double'”。

有没有我失踪的方法?

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)),
4

1 回答 1

2

该类型decimal不能隐式转换为double. 您可以显式转换它:

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

对于表示天数的数据库类型,十进制是一个不寻常的选择。我建议您确保该列确实代表了这一点。

于 2013-04-08T17:12:36.353 回答