为什么 DBNull.Value 存在

发布于 2024-12-01 06:17:14 字数 475 浏览 0 评论 0原文

可能的重复:
DBNull 的意义是什么?

我最近一直在研究一些处理将 Nullable 类型插入数据库的代码部分。

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

IE 的烦恼:

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

基本上我只是想知道这里是否有人能足够友善解释为什么 DBNull.Value 存在以及为什么 Null 根本无法使用?

Possible Duplicate:
What is the point of DBNull?

I have recently been working on a number of sections of code that deal with the insertion of Nullable types into a database.

As I'm sure anyone who has dealt with similar code will be aware of the annoyance of constantly writing conditional logic to deal with the insertion of nulls into a database

IE:

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

Basically I am just wondering if someone here could be kind enough to explain why DBNull.Value exists and why Null simply couldn't be used?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

煞人兵器 2024-12-08 06:17:14

这里有一个解释
http://codebetter.com/petervanooijen/2004/04/ 12/system-dbnull-value-null/

如果你调用 ExecuteScalar 并得到 null,那么这意味着数据库中没有找到数据,但是如果你得到DBNull 表示您找到了数据,但该值实际上为空。

Here you have one explanation
http://codebetter.com/petervanooijen/2004/04/12/system-dbnull-value-null/

If you call ExecuteScalar and you get null, then it means that no data was found in the database, but if you get DBNull that means you found data but the value was actually null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文