可能重复:
DBNull 的意义何在?
从我开始使用 .NET 开始,我就一直问自己一个问题:
为什么我们需要 DBNull 类型?一个简单的空引用还不够吗?
MSDN 说 DBNull “表示不存在的值”。从逻辑的角度来看——这句话解释了为什么不能使用空引用——因为它是空引用而不是缺乏价值。但是引入一个会引起很多麻烦的类型就足够了吗?
顺便说一句:如果有人有话要为我辩护,DBNull
我将不胜感激。
可能重复:
DBNull 的意义何在?
从我开始使用 .NET 开始,我就一直问自己一个问题:
为什么我们需要 DBNull 类型?一个简单的空引用还不够吗?
MSDN 说 DBNull “表示不存在的值”。从逻辑的角度来看——这句话解释了为什么不能使用空引用——因为它是空引用而不是缺乏价值。但是引入一个会引起很多麻烦的类型就足够了吗?
顺便说一句:如果有人有话要为我辩护,DBNull
我将不胜感激。
DBNull从 .Net 框架的最早版本就已经存在。
可空值类型 ( Nullable<T>
) 仅在框架的第 2 版后才存在。
因为,在版本 2 之前,可以从数据库中接收到 null int 值,您建议如何表示它?然后,为了保持一致性,使用相同的方法表示所有 DB 空值,无论它们转换为值类型还是引用类型。
DBNull.Value
表示数据库中的“NULL”;它与“null”不同。
我们需要它,以便我们可以检测从数据库返回的值是否为空。通常,Convert.IsDBNull
用于执行检查。
类型与DBNull
编程值不一样null
c# 中的 null 与 SQL 上下文中的 NULL 不同,C# 中的 SQL NULL 不是作为字符串公开的,而是DbNull.Value
有道理的,如果不是这样,你将如何检查 db null?比较一个字符串"NULL"
不会是一样的......