解决方法
这里有3种常见的方法;
>如果您正在谈论对象(可能是从数据读取器中获取它),那么DBNull.Value可以表示null.不过,我不倾向于将其从数据层中删除
>由于.NET 1.1历史记录,DateTime.MinValue通常被解释为null;一个神奇的数字,也许 – 但它起作用,并得到大多数数据绑定等的支持
>在.NET 2.0中,Nullable< T>意味着你可以使用DateTime? – 即可以约束的DateTime;只使用DateTime?在哪里 – 你的意思是DateTime可以为null,你可以给它一个null值或一个有效的DateTime.
关于数据访问和空值的一些其他想法:
>传递给sqlCommand时,必须使用DBNull.Value,而不是null – 见下文
>从数据读取器读取时,我倾向于检查reader.IsDbNull(序数)
命令填充(以Nullable< T>为例):
param.Value = when.HasValue ? (object)when.Value : DBNull.Value;