SQL SERVER数据库中DateTime字段的默认值为1900-1-1,我想在前台程序中将NULL值插入到DateTime字段中,请问该如何做呢?
数据库中的 NULL 是一个特殊的数据。任何数据类型都可以为 NULL。
在 .NET 中,通过参数对象向数据库传递参数的时候,如果将 Value 属性的值设置为 null,则实际上将不向数据库传递这个参数。在 .NET 中 null 表示空引用,不是数据库中 NULL 的含义。
为了在 .NET 中表示数据库中的 NULL,可以使用 System.DBNull 这个类,专门用来解决这个问题,这个类有一个静态属性 Value ,表示它的唯一一个实例。
所以,从数据库中读取的 NULL ,在 ADO.NET 中将被表示为 DBNull,DataReader 有一个方法专门用来判断是否为 DBNULL, IsDBNull。如果从 .NET 向数据库传递数据库中的 NULL,那么需要将参数的值设置为 DBNULL.Value.
declare @t table(t datetime)
insert @t values(null)
select * from @t
用datetime? 类型
ado.net 里用 parameter 参数即可。
SqlCommand1.Parameters.Add("@DateTime1", DBNull.Value);
楼上正解
SqlCommand1.Parameters.Add("@DateTime1", DBNull.Value);
datetime? 用在定义实体类的时候,不然时间类型的。声明实体对象,不给时间类型赋值的话会报转换类型错误。datetime? 是object类型的