删除 SQL Server 默认日期 1/1/1900


用户可以

使用以下代码选择一个日期,该日期将显示在文本框中。

<asp:TextBox ID="dateTB" runat="server" />
<asp:ImageButton ID="ib" ImageUrl="/calendar.png" ImageAlign="Bottom" runat="server" />
<asp:CalendarExtender ID="Cal1" PopupButtonID="ib" runat="server" TargetControlID="dateTB" Format="MM/dd/yyyy">
</asp:CalendarExtender>

之后,我将该日期存储在SQL Server数据库中。

问题:当用户未输入日期时,SQL Server 默认存储 1/1/1900。

如果用户留下空日期字段,而 SQL Server 不存储 1/1/1900,我该怎么办?

我尝试过:如果我检查查看日期TB为空怎么办。如果它为空,则执行某些操作,然后插入数据库。

If (String.IsNullOrEmpty(dateTB.Text)) Then
    ' do something with dateTB??
End If
我想发生的事情:如果它是默认日期(1/1/1900

),那么我想存储 null,而不是 1/1/1900。

  1. 确保数据库列支持 NULL。
  2. 确保您的 VB 代码正在为正在设置的值传递 DBNull。

由于您没有完整的示例,我猜测您用于存储日期值的 VB 代码中的字段不可为空,因此它被设置为默认值。可以使用可为 null 的类型来解决此问题。不要使用魔术值;1900 年 1 月 1 日是合法日期。

最新更新