2016-12-02 148 views
-1
string upgradeDate = ""; 
TimeSpan dateDifference; 

if (!sqlDR.IsDBNull(3)) upgradeDate = sqlDR.GetString(3); 
dateDifference = (DateTime.Now - Convert.ToDateTime(upgradeDate)).TotalDays; 

upgradeDate從數據庫字符串來英寸最後一行的upgradeDate還有一個未分配的變量錯誤。如何獲取當前日期和其他日期之間的日期差異以字符串形式顯示?

+1

大概這樣不能編譯? 'TotalDays'返回一個double值,但是你想把它分配給'dateDifference',它被定義爲TimeSpan .. – stuartd

+0

任何想法爲什麼我在最後一行中得到upgradeDate的未分配變量錯誤? –

+1

如果可能,我建議你總是將日期保存在日期數據類型的數據庫中,而不是字符串。 – juharr

回答

2

你可以這樣說:

TimeSpan? dateDifference = null; 

if (!sqlDR.IsDBNull(3)) { 
    string upgradeDate = sqlDR.GetString(3); 
    dateDifference = DateTime.Now - Convert.ToDateTime(upgradeDate); 
} 

如果sqlDR.IsDBNull(3)然後dateDifference將是無效的。

您也可以從TimeSpan dateDifference = TimeSpan.Zero;開始這取決於您。

但是可以肯定的,你必須閱讀:Why compile error "Use of unassigned local variable"?,作爲@stuartd說。

+1

無法將'double'分配給'TimeSpan?'。你需要刪除'.TotalDays'。 – juharr

+0

@juharr沒錯,謝謝。 – romanoza

相關問題