我正在尝试重复使用我一直以来使用的相同代码,但现在它遇到了一个错误。
我正在循环遍历各种用户表,在其中执行以下操作:
DateTime dcdt = (DateTime)u.DateCreated;
DateTime lldt = (DateTime)u.LastLogon;
userRow["DateCreated"] = dcdt.ToShortDateString();
在循环内部,我遇到了错误:
System.InvalidOperationException: Nullable object must have a value.
错误突出显示了“lldt”行,而不是先出现的“dcdt”。这本身就很奇怪。数据库中这两个字段都已经勾选了“允许为空”。它们可能都为空,也可能都不为空。
通过智能感知,这两个值都列为DateTime?类型。
我不明白为什么ASP.NET不允许我输出空值日期。如果它是空/空值,那么逻辑上来说,ASP.NET应该什么都不输出。
我还能以其他方式输出空值日期吗?我尝试添加if语句以防止尝试转换空日期,但这没有帮助,毫无意义。