|M| 第四贴: 日期转为空字符 刚才的大家没有能理解我的意思 400分了
原贴:http://community.csdn.net/Expert/topic/5379/5379993.xml?temp=.945904   
 还是我描述的不准确 
 我简化说了下吧   
 DateTime   dt=???? 
 if(Dt.ToString()== " ") 
 { 
             Response.Write( "OK就是要这个样子 "); 
 }   
 在不添加和不更改原有的代码的情况下 
 请大家将 "???? "里面填写代码   
 谢谢
------解决方案--------------------DbNull.Value?
------解决方案--------------------impossible.
------解决方案--------------------做不到。 
 不过你可以这样变通: 
 DateTime dt = yourDate;   
 if(dt == DateTime.MinValue) 
 { 
 //...... 
 } 
 别用空串作条件
------解决方案--------------------DateTime 数据类型 不可能为空值.
------解决方案--------------------只有最小值
------解决方案--------------------使用null值不就可以了吗
------解决方案--------------------Insertuser(27,Convert.ToDateTime( '2007-3-4 '),null)
------解决方案--------------------异想天开~
------解决方案--------------------帮顶.变通实现吧 
------解决方案--------------------這樣試試,給outdate這列設定Null為默認值,然後插入的時候不往這列插入數據。   
 Create Table [user] 
 (id		Int, 
  nameid	Int, 
  indate	DateTime, 
  outdate	DateTime Default Null) 
 Insert [user] (id, nameid, indate) Select 3,       23,      '2007-3-1 '   
 Select * From [user]   
 --Result 
 /* 
 id	nameid	indate			outdate 
 3	23	2007-03-01 00:00:00.000	NULL 
 */
------解决方案--------------------楼主是做考勤系统吗   
 以下我个人经验 说错勿怪 
 日期型在插入的时候 数据库的值不能为 'null ' 
 如果你插入的字符型(空值 如 ' ') 数据库的值也会默认生成 '1900-1-1 '(DataTime类型时)   
 如果你想 在时间为空时 数据库的值也要为 'null ' 
 只能在写SQL语时做手脚了  
 如 当没有填写 离开时间时  
 String sql=String.Format( "Insert into tab ([nameid],[indate]) values ({0}, '{1} ') ",User,indate); 
 其他情况同理   
 我一般的做法时 当离开时间为空时 插入空字符串 ' ' 然后数据库自动生成 '1900-1-1 ' 
 无论时显示和统计的时候 我都会将 '1900-1-1 '替换成空值
------解决方案--------------------很可惜,DateTime是被sealed的,无法继承,无法override他的ToString()方法
------解决方案--------------------我一般的做法时 当离开时间为空时 插入空字符串 ' ' 然后数据库自动生成 '1900-1-1 ' 
 无论时显示和统计的时候 我都会将 '1900-1-1 '替换成空值   
 这个方法我也经常用,还有截止日期不限时我也用一个3000年存进去,提出来再替换成“不限”,楼主,关键还是看你实现什么功能,不是非要带鞋样去买鞋啊
------解决方案--------------------DateTime dt; 
 if(dr[ "date字段 "] != DBNull.Value) 
 dt = (DateTime)dr[ "date字段 "]; 
 else 
 dt = DateTime.Now;  
------解决方案--------------------to xinfan(新凡) 
 有必要纠正一下你的错误 
 “日期型在插入的时候 数据库的值不能为 'null '” 
 日期数据类型是容许为NULL的,只有在Insertuser(27,Convert.ToDateTime( '2007-3-4 '), ' ') 
  ' '的时候是 '1900-1-1 '   
 而且,DateTime是指类型,不能为null(C#中),如果 '1900-1-1 '在你的系统中是有意义的数字的花,那么你可以用另外一个实体属性isNullForDate来作判断DBNULL.Value 
------解决方案--------------------