在.NET中,有null
引用,它在任何地方都用来表示对象引用是空的,然后是DBNull
,数据库驱动程序(和其他几个数据库驱动程序)使用它来表示.差不多都是一样的东西.当然,这会创建大量的念力,转换 routine 必须大量创建,依此类推.
那么,原版为什么要这么做呢.网络作者决定这样做吗?对我来说这毫无意义.他们的文件也毫无意义:
DBNull类表示一个不存在的值.例如,在数据库中,表行中的一列可能不包含任何数据.也就是说,该列被认为根本不存在,而不仅仅是没有值.DBNull对象表示不存在的列.此外,COM interop使用DBNull类来区分表示不存在值的VT_NULL变量和表示未指定值的VT_EMPTY变量.
"专栏不存在"是什么废话?列存在时,它只是没有特定行的值.如果它不存在,我会在try 访问特定单元格时遇到异常,而不是DBNull
!我能理解区分VT_NULL
和VT_EMPTY
的必要性,但为什么不改为COMEmpty
级呢?这将是一个更整洁的整体适合.NET框架.
我错过什么了吗?谁能解释一下为什么DBNull
会被发明,以及它有助于解决哪些问题?