请问大家是如何解决sql 数据库字段设为 datetime ,默认为 null, c#里datagrid读出来确是1900-1-1的问题的?可不可以读出来后让其显示为空白?
不会啊,我这边的就是显示空白的啊?你再试试吧
把该字段设置“不为空”
up!
的确会有这个问题。Sql Server里DateTime型默认值是1900/01/01,
如果你的程序里不会出现19世纪的时间。
可以这样做:
1、读数据时,遇到1900/01/01就转化为空。
2、更新时间时,先检测是否大于1900/01/01。
希望能帮到你!
在程序里作判断,如果这一列值小于1900-01-02就将其制空就可以了。
如过还没搞定发邮件给我,到时我再给你代码。yangweili888@hotmail.com
我在asp中遇到过,在asp.net中就没有遇到过
MARK
最好不要设置默认值
而是在插入数据的时候设置为空
应该是你在sqlcommand的参数中定义了datatime类型的参数吧.
我这是null不是1900-1-1啊。
你的datagrid中的formatstring是否设置成formatstring={0:yyyy-mm-dd}了?
楼主:我前些时候遇到过相同的问题。
输出1900-1-1的原因是你 写入数据库时datetime字段赋值为""(空) 造成的,
解决办法可以强行赋值为null 就可以的。
最好是插入记录的时候赋值为空 ‘’
我試過,當你沒有作出修改前,可以是null.不過,一般我們插入數據庫的時候,如果該項為空,我們就插入“”。這時,系統會給你變成“1900”。所以,你可以考慮黨時間為空時,不進行該列的更新操作。或者,插入“null”.而不是“‘’”。
在Sql中寫
isnull(時間字段,) as 時間字段