2016-12-02 146 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

相关问题