将 DateTimePicker 设置为 Null 并保存到数据库

Setting DateTimePicker to Null and saving to DB

我的 DateTimePicker 有问题。我已经按照所有示例将 DateTimePicker 设置为空白。代码如下所示:

dtpCloseDate.Checked = false;
dtpCloseDate.ShowCheckBox = false;

if (dtpCloseDate.Checked == false)
{
    dtpCloseDate.CustomFormat = " ";
    dtpCloseDate.Format = DateTimePickerFormat.Custom;
}

所以这在加载时效果很好 DateTimePicker 加载时其中有一个空白。然而,在幕后实际上有一个日期被加载到其中。所以我然后保存到数据库并且它有一个日期。另外,我正在尝试验证此关闭日期是否在打开日期之后。我确实有验证,但它目前总是被触发,因为关闭日期中有一个日期明显早于打开日期。

也许这样做:

dtpCloseDate.Checked = false;
dtpCloseDate.ShowCheckBox = false;

if (dtpCloseDate.Checked == false)
{
    dtpCloseDate.CustomFormat = " ";
    dtpCloseDate.Format = DateTimePickerFormat.Custom;
    dtpCloseDate.Value = DateTime.MinValue;
}

将日期设置为绝对零。然后测试当 loading/saving 到 database/doing 时无论你想做什么:

if (dtp.Value == DateTime.MinValue) { ... }