首页 新闻 会员 周边

如何将NULL插入到DateTime字段中?

0
悬赏园豆:5 [已解决问题] 解决于 2010-05-16 22:09

SQL SERVER数据库中DateTime字段的默认值为1900-1-1,我想在前台程序中将NULL值插入到DateTime字段中,请问该如何做呢?

stewen的主页 stewen | 初学一级 | 园豆:14
提问于:2010-05-01 23:31
< >
分享
最佳答案
0

数据库中的 NULL 是一个特殊的数据。任何数据类型都可以为 NULL。

在 .NET 中,通过参数对象向数据库传递参数的时候,如果将  Value 属性的值设置为 null,则实际上将不向数据库传递这个参数。在 .NET 中 null 表示空引用,不是数据库中 NULL 的含义。

为了在 .NET 中表示数据库中的 NULL,可以使用 System.DBNull 这个类,专门用来解决这个问题,这个类有一个静态属性 Value ,表示它的唯一一个实例。

所以,从数据库中读取的 NULL ,在 ADO.NET 中将被表示为 DBNull,DataReader 有一个方法专门用来判断是否为 DBNULL, IsDBNull。如果从 .NET 向数据库传递数据库中的 NULL,那么需要将参数的值设置为  DBNULL.Value.

收获园豆:5
冠军 | 小虾三级 |园豆:886 | 2010-05-15 22:04
写的很详细,正解,谢谢!
stewen | 园豆:14 (初学一级) | 2010-05-16 22:09
其他回答(7)
0

declare @t table(t datetime)
insert @t values(null)

select * from @t

清海扬波 | 园豆:825 (小虾三级) | 2010-05-01 23:57
0

用datetime? 类型

999999999999999 | 园豆:3 (初学一级) | 2010-05-02 08:48
0

ado.net 里用 parameter 参数即可。

SqlCommand1.Parameters.Add("@DateTime1", DBNull.Value);

WizardWu | 园豆:1402 (小虾三级) | 2010-05-02 18:59
用这个就好了
支持(0) 反对(0) 好人好梦々 | 园豆:215 (菜鸟二级) | 2010-05-02 20:32
恩 参数赋值的时候赋DBNull.Value就行了
支持(0) 反对(0) 风遥 | 园豆:10 (初学一级) | 2010-05-12 20:31
0

楼上正解

Astar | 园豆:40805 (高人七级) | 2010-05-03 10:24
0

SqlCommand1.Parameters.Add("@DateTime1", DBNull.Value);

kevin_20131022 | 园豆:280 (菜鸟二级) | 2010-05-04 11:14
0

datetime? 用在定义实体类的时候,不然时间类型的。声明实体对象,不给时间类型赋值的话会报转换类型错误。datetime? 是object类型的

邢少 | 园豆:10926 (专家六级) | 2010-05-04 13:54
-1

在博客园看过的,http://space.cnblogs.com/group/topic/38950/  希望对你有点帮助

chocol@te | 园豆:325 (菜鸟二级) | 2010-05-12 08:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册