首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 第四贴: 日期转为空字符 刚才的大家没有能理解小弟我的意思 400分了

2012-02-03 
|M| 第四贴: 日期转为空字符 刚才的大家没有能理解我的意思 400分了原贴:http://community.csdn.net/Exper

|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]
(idInt,
nameidInt,
indateDateTime,
outdateDateTime Default Null)
Insert [user] (id, nameid, indate) Select 3, 23, '2007-3-1 '

Select * From [user]

--Result
/*
idnameidindateoutdate
3232007-03-01 00:00:00.000NULL
*/
[解决办法]
楼主是做考勤系统吗

以下我个人经验 说错勿怪
日期型在插入的时候 数据库的值不能为 '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

------解决方案--------------------


你的描述很准确。
可是如果不变通的话,没办法解决这个问题。
其实有很多变通的办法,而且能很好的解决你的问题。
[解决办法]
TO :WNASP(好好学习,天天向上)
先谢指教
我的意思时 在日期型插入时 相应的字段不能为null
如果可以
插入什么值时 能使数据字段为null
多谢
[解决办法]
看了下你的第二帖,如果可以改方法体的话。。。
最后一个参数可以传一个 DateTime.MinValue
然后方法体改一下:

void Insertuser(Int32 User,DateTime indate,DateTime outdate)
{
String sql=String.Format( "Insert into tab ([nameid],[indate],[outdate]) values ({0}, '{1} ', '{2} ') ",User,indate,outdate==DateTime.MinValue? " ":outdate.ToString());
....这里添加记录
}

热点排行