【发布时间】:2012-02-03 16:05:44
【问题描述】:
我正在尝试重用我一直使用的相同代码,但现在遇到了错误。
我正在遍历各种用户表,并在其中执行以下操作:
DateTime dcdt = (DateTime)u.DateCreated;
DateTime lldt = (DateTime)u.LastLogon;
userRow["DateCreated"] = dcdt.ToShortDateString();
在循环内。我得到了错误:
System.InvalidOperationException: Nullable object must have a value.
错误突出显示“lldt”行,而不是首先出现的“dcdt”。这本身就很奇怪。检查数据库中的这两个字段“允许空值”。它们都可以为空,也可以都不为空。
这两个值都被列为日期时间?通过智能感知类型。
我不明白为什么 ASP.NET 拒绝让我为空日期输出空白。如果它是空/null,那么逻辑会建议 ASP.NET 应该什么都不打印。
我还想如何输出空日期?我尝试添加 if 语句以防止尝试强制转换 null DateTimes,但这没有帮助,没有任何意义。
【问题讨论】:
标签: c# asp.net sql-server sql-server-2008