我可以使用任何方法检查数据行上的DBnull
。
使用
if(dr[0][0]==DBNull.Value)
//do somethin
或通过
if(dr[0][0].ToString().IsNullOrEmpty())
//do something
在这两种情况下,我都会得到相同的结果。
但是哪一个是直接正确的方法。哪个会使用更少的资源
答案 0 :(得分:18)
第一种方式有点正确。 但是,更容易接受的方式是:
if ( dr[0][0] is DBNull )
第二种方式肯定是不正确的。如果你使用第二种方式,你将在两种情况下成真:
答案 1 :(得分:6)
从概念上讲,与DBNull.Value
的比较是正确的。
您也可以使用:
if (Convert.IsDBNull(dr[0]))
{
}
你也可以使用,我不是它的粉丝,纯粹是因为它是一种类型比较而不是价值比较:
if (dr[0] is DBNull)
{
}
答案 2 :(得分:0)
总是使用:
dr[0].IsNull(0)
假设此功能的创建者知道最佳方式/最有效的比较方式..
答案 3 :(得分:0)
最简单的方法
if (dr[0][0] == DBNull.Value)
//do somethin
完全有效且可读。
即使==
比较引用,它也适用于DBNUll.Value
is the only instance of DBNull
class - 因此所有DBNull
值实际上都是这个确切的引用。