我的 Windows 窗体中有一个 DateTimePicker,如果用户没有选择任何日期,我需要让它在数据库中保存 NULL。
但是,即使我不选择任何日期(检查为 false),数据库中保存的值也是当前日期。
所以,我的项目在 EF6 中。
这是我的实体属性:
[Display(Name = "Data Entrega")]
[Column(TypeName = "datetime2")]
public DateTime? DataEntregue { get; set; }
这是我的带有 DateTimePicker 的表单:
处理程序:
private void dataEntrega_ValueChanged(object sender, EventArgs e)
{
if (((DateTimePicker)sender).ShowCheckBox == true)
{
if (((DateTimePicker)sender).Checked == false)
{
((DateTimePicker)sender).CustomFormat = " ";
((DateTimePicker)sender).Format = DateTimePickerFormat.Custom;
}
else
{
((DateTimePicker)sender).CustomFormat = "yyyy-MM-dd";
((DateTimePicker)sender).Format = DateTimePickerFormat.Custom;
}
}
else
{
((DateTimePicker)sender).CustomFormat = " ";
((DateTimePicker)sender).Format = DateTimePickerFormat.Custom;
}
}
保存更改:
DbContext ctx = new DbContext();
Tools tl = new Tools()
{
DataEntregue = dataEntrega.Value,
Comentarios = txtComentarios.Text.Trim(),
CreatedBy = Extensions.UserInfo.CurrentLoggedUser,
CreatedOn = DateTime.Now
};
ctx.Tools.Add(tl);
ctx.SaveChanges();
谁能帮我弄清楚为什么我不能将 NULL 放入数据库?
慕哥6287543
相关分类