2013-04-08 68 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