关于DBNull
DBNull的说明:
DBNull在DotNet是单独的一个类型,该类只能存在唯一的实例,DBNULL.Value,DBNull唯一作用是 可以表示数据库中的字符串,数字,或日期,为什么可以表示原因是DotNet储存这些数据的类(DataRow等)都是以 object 的形式来储存数据的。对于 DataRow , 它的 row[column] 返回的值永远不为 null , 要么就是具体的为column 的类型的值 。 要么就是 DBNull 。 所以 row[column].ToString() 这个写法永远不会在ToString那里发生NullReferenceException。DBNull 实现了 IConvertible 。 但是,除了 ToString 是正常的外,其他的ToXXX都会抛出不能转换的错误。
DBNull的判断:
(1)可以用is操作符。
(2)也可以用Convert.IsDBNull(object value)方法。
DBNUll与Null:
DBNull与NUll是没有任何关系的。DBNull只是一个普通的类,继承自object,没添加任何方法属性,是一个单独的类,只能存在一个实例,其有一个唯一的实例Value。它的存在仅仅只是为了表示从数据库读取数据时遇到的数据库中的null值。而null是表示不引用任何对象的空引用。