日期:2014-05-19  浏览次数:20549 次

DateTime类型为空时,如何插入?
我的数据库中有一个时间字段,如果时间为空时,我想让数据库中相应字段变为NULL,当文本框中不选择时,我将其赋为 "9999-12-30   00:00:00 "
然后想让其为NULL,可是插入的值却是1900-1-1   00:00:00,应该怎么插入?

strSql.Append( "insert   into   t_Contract( ");
strSql.Append( "Contract_EndDate,Contract_DelFlag ");
strSql.Append( ") ");
strSql.Append( "   values   ( ");

if(Contract_EndDate==Convert.ToDateTime( "9999-12-30   00:00:00 "))
{
strSql.Append( " ' "+DBNull.Value+ " ', ");
}
else
{
                  strSql.Append( " ' "+Contract_EndDate+ " ', ");
}

strSql.Append( "   0   ");
strSql.Append( ") ");

------解决方案--------------------
DateTime没有空值 默认赋值的
if(Contract_EndDate==Convert.ToDateTime( "1900-1-1 00:00:00 "))
------解决方案--------------------
一定要null啊,加一个默认时间不行吗,做的什么啊,有这种要求
------解决方案--------------------
也可以这样进行比较
if(Contract_EndDate==DateTime.MinValue)

------解决方案--------------------
"9999-12-30 00:00:00 "
超出日期型的范围了

"1900-1-1 00:00:00 " 是空插入的默认值

在前台显示的时候 可以将 "1900-1-1 00:00:00 " 替换为空

------解决方案--------------------
你直接在数据库中把DateTime改为其他的Nchar
DateTime微软规定了不可为Null