【发布时间】:2011-04-01 04:12:17
【问题描述】:
我在 sql server 中有一个 datetime 列及其可选字段,如果用户决定不输入,那么我想在表中将值作为 NULL 插入,我定义如下:
@deadlineDate datetime = null
当我插入 sql server 时,我在 asp.net 中有这段代码
private DateTime? GetDeadlineDate()
{
DateTime? getDeadlineDate = null;
if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate))
{
getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date;
}
if (!getDeadlineDate.HasValue)
{
return null;
}
return getDeadlineDate.Value;
}
但问题是:它的插入
1900-01-01 00:00:00.000
在sql表中而不是NULL
我在这里做错了什么?
更新:
private DateTime? GetDeadlineDate()
{
DateTime? getDeadlineDate = null;
if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate))
{
getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date;
}
if (!getDeadlineDate.HasValue)
{
return DBNull.Value; //throws error....
}
return getDeadlineDate.Value;
}
【问题讨论】:
-
Nisar,您的更新不起作用,因为
DBNull.Value的类型为DBNull,而不是DateTime?。我想你已经把自己弄糊涂了。 -
请记住,在第一个代码块中,方法的最后 5 行等效于
return getDeadlineDate;。
标签: c# sql sql-server tsql datetime