2

可能重复:
DBNull 的意义何在?

从我开始使用 .NET 开始,我就一直问自己一个问题:

为什么我们需要 DBNull 类型?一个简单的空引用还不够吗?

MSDN 说 DBNull “表示不存在的值”。从逻辑的角度来看——这句话解释了为什么不能使用空引用——因为它是空引用而不是缺乏价值。但是引入一个会引起很多麻烦的类型就足够了吗?

顺便说一句:如果有人有话要为我辩护,DBNull我将不胜感激。

4

4 回答 4

8

DBNull从 .Net 框架的最早版本就已经存在。

可空值类型 ( Nullable<T>) 仅在框架的第 2 版后才存在。

因为,在版本 2 之前,可以从数据库中接收到 null int 值,您建议如何表示它?然后,为了保持一致性,使用相同的方法表示所有 DB 空值,无论它们转换为值类型还是引用类型。

于 2011-06-21T08:56:59.503 回答
2

DBNull.Value表示数据库中的“NULL”;它与“null”不同。

于 2011-06-21T08:57:31.947 回答
1

我们需要它,以便我们可以检测从数据库返回的值是否为空。通常,Convert.IsDBNull用于执行检查。

类型与DBNull编程值不一样null

于 2011-06-21T08:57:09.713 回答
0

c# 中的 null 与 SQL 上下文中的 NULL 不同,C# 中的 SQL NULL 不是作为字符串公开的,而是DbNull.Value有道理的,如果不是这样,你将如何检查 db null?比较一个字符串"NULL"不会是一样的......

于 2011-06-21T08:56:46.393 回答