我应该用什么来比较 DBNull ?使用 DBNull.Value 或 ToString().IsNullOrEmpty()
我可以使用任何方法检查数据行上的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第一种方式有点正确。
然而,更被接受的方式是:
而第二种方式肯定是不正确的。如果您使用第二种方式,在两种情况下您将得到 true:
The first way is somewhat correct.
However, more accepted way is:
And the second way is definitely incorrect. If you use the second way, you will get true in two cases:
从概念上讲,与
DBNull.Value
的比较是正确的。您还可以使用 :
您也可以使用,我不喜欢它,纯粹是因为它是类型比较而不是值比较:
Conceptually the comparison to
DBNull.Value
is the correct one.You can also use :
You could also use, which I'm not a fan of, purely because it's a type comparison rather than a value comparison:
始终使用:
假设该函数的创建者知道最好的方法/最有效的比较方法。
Is always use :
Assuming that the creators of this function know the best way/most efficient way of comparing..
最简单的方法
是完全有效且可读的。
即使
==
比较引用,它在这里仍然有效,因为DBNUll.Value
是DBNull
类 的唯一实例 - 因此所有DBNull
值实际上都是这个确切的引用。The simplest way
is perfectly valid and readable.
Even though
==
compares references, it works here becauseDBNUll.Value
is the only instance ofDBNull
class - so allDBNull
values are actually this exact reference.