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

时间:2016-05-20 18:54:58

标签: vb.net

用户可以使用以下代码选择日期,日期显示在TextBox中。

<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,我该怎么办?

我尝试了什么:如果我查看是什么,dateTB是空的。如果它是空的,那么做一些事情然后插入数据库。

If (String.IsNullOrEmpty(dateTB.Text)) Then
    ' do something with dateTB??
End If

我想要发生的事情:如果它是默认日期(1/1/1900),那么我想存储空值,而不是1/1/1900。

1 个答案:

答案 0 :(得分:0)

  1. 确保您的数据库列支持NULL。
  2. 确保您的VB代码正在传递DBNull以获取您正在设置的值。
  3. 由于您没有完整的示例,我猜测您用于存储日期值的VB代码中的字段不可为空,因此将其设置为默认值。您可以使用可空类型来解决此问题。不要使用魔法值; 1/1/1900是合法的约会。