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

Sha*_*pta 21 .net null dbnull dataset

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

通过使用

if(dr[0][0]==DBNull.Value)
//do somethin
Run Code Online (Sandbox Code Playgroud)

或通过做

if(dr[0][0].ToString().IsNullOrEmpty())
//do something
Run Code Online (Sandbox Code Playgroud)

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

但是哪一个是直接正确的方法.哪个将使用更少的资源

Fyo*_*kin 19

第一种方式有点正确.但是,更容易接受的方式是:

if ( dr[0][0] is DBNull )
Run Code Online (Sandbox Code Playgroud)

而第二种方式肯定是不正确的.如果你使用第二种方式,在两种情况下你会得到:

  1. 你的价值是DBNull
  2. 您的值是一个空字符串


Rob*_*Rob 6

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

您还可以使用:

if (Convert.IsDBNull(dr[0]))
{
}
Run Code Online (Sandbox Code Playgroud)

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

if (dr[0] is DBNull)
{
}
Run Code Online (Sandbox Code Playgroud)