C# 为什么DBNull.Value存在

C# 为什么DBNull.Value存在,c#,sql,database,vb.net,null,C#,Sql,Database,Vb.net,Null,可能重复: 我最近一直在编写一些代码部分,这些代码部分处理将可空类型插入数据库的问题 我相信任何处理过类似代码的人都会意识到不断编写条件逻辑来处理向数据库中插入空值的麻烦 IE: MyValue.HasValue ? MyValue.Value : DBNull.Value; If(MyValue.HasValue, MyValue.Value, DBNull.Value) 基本上,我只是想知道这里是否有人可以解释为什么DBNull.Value存在,为什么不能使用Null?这里有一个解释

可能重复:

我最近一直在编写一些代码部分,这些代码部分处理将可空类型插入数据库的问题

我相信任何处理过类似代码的人都会意识到不断编写条件逻辑来处理向数据库中插入空值的麻烦

IE:

MyValue.HasValue ? MyValue.Value : DBNull.Value;
If(MyValue.HasValue, MyValue.Value, DBNull.Value)

基本上,我只是想知道这里是否有人可以解释为什么DBNull.Value存在,为什么不能使用Null?

这里有一个解释


如果调用ExecuteScalar并得到null,则表示在数据库中找不到任何数据,但如果得到DBNull,则表示找到了数据,但实际值为null。

非常确定这是重复的