我应该用什么来比较 DBNull ?使用 DBNull.Value 或 ToString().IsNullOrEmpty()

发布于 2024-09-13 07:16:13 字数 284 浏览 10 评论 0原文

我可以使用任何方法检查数据行上的 DBnull

无论是通过使用

if(dr[0][0]==DBNull.Value)
//do somethin

还是通过执行

if(dr[0][0].ToString().IsNullOrEmpty())
//do something

在这两种情况下我都会得到相同的结果。

但哪一种方法在理论上是正确的。哪个将使用更少的资源

I can check for a DBnull on a data row using any of the methods.

Either by using

if(dr[0][0]==DBNull.Value)
//do somethin

or by doing

if(dr[0][0].ToString().IsNullOrEmpty())
//do something

In Both Cases I will be getting same result.

But Which one is conecptually right approach. Which was will use less resources

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

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

发布评论

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

评论(4

夏见 2024-09-20 07:16:13

第一种方式有点正确。
然而,更被接受的方式是:

if ( dr[0][0] is DBNull )

而第二种方式肯定是不正确的。如果您使用第二种方式,在两种情况下您将得到 true:

  1. 您的值为 DBNull
  2. 您的值为空字符串

The first way is somewhat correct.
However, more accepted way is:

if ( dr[0][0] is DBNull )

And the second way is definitely incorrect. If you use the second way, you will get true in two cases:

  1. Your value is DBNull
  2. Your value is an empty string
々眼睛长脚气 2024-09-20 07:16:13

从概念上讲,与 DBNull.Value 的比较是正确的。

您还可以使用 :

if (Convert.IsDBNull(dr[0]))
{
}

您也可以使用,我不喜欢它,纯粹是因为它是类型比较而不是值比较:

if (dr[0] is DBNull)
{
}

Conceptually the comparison to DBNull.Value is the correct one.

You can also use :

if (Convert.IsDBNull(dr[0]))
{
}

You could also use, which I'm not a fan of, purely because it's a type comparison rather than a value comparison:

if (dr[0] is DBNull)
{
}
书信已泛黄 2024-09-20 07:16:13

始终使用:

dr[0].IsNull(0) 

假设该函数的创建者知道最好的方法/最有效的比较方法。

Is always use :

dr[0].IsNull(0) 

Assuming that the creators of this function know the best way/most efficient way of comparing..

一人独醉 2024-09-20 07:16:13

最简单的方法

if (dr[0][0] == DBNull.Value)
//do somethin

是完全有效且可读的。

即使 == 比较引用,它在这里仍然有效,因为 DBNUll.ValueDBNull 的唯一实例 - 因此所有 DBNull 值实际上都是这个确切的引用。

The simplest way

if (dr[0][0] == DBNull.Value)
//do somethin

is perfectly valid and readable.

Even though == compares references, it works here because DBNUll.Value is the only instance of DBNull class - so all DBNull values are actually this exact reference.

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