26

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

要么通过使用

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

或通过做

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

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

但是哪一个是concptually正确的方法。哪个会使用更少的资源

4

4 回答 4

23

第一种方法有些正确。但是,更接受的方式是:

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

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

  1. 你的价值是 DBNull
  2. 您的值是一个空字符串
于 2010-08-03T06:10:01.360 回答
9

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

您还可以使用:

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

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

if (dr[0] is DBNull)
{
}
于 2010-08-03T06:10:59.007 回答
1

总是使用:

dr[0].IsNull(0) 

假设这个函数的创建者知道比较的最佳方式/最有效的方式..

于 2010-08-04T10:07:58.083 回答
0

最简单的方法

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

是完全有效和可读的。

即使==比较引用,它也可以在这里工作,因为它DBNUll.ValueDBNull的唯一实例- 所以所有DBNull值实际上都是这个精确的引用。

于 2017-01-05T19:09:59.207 回答