我可以DBnull
使用任何方法检查数据行上的 a。
要么通过使用
if(dr[0][0]==DBNull.Value)
//do somethin
或通过做
if(dr[0][0].ToString().IsNullOrEmpty())
//do something
在这两种情况下,我都会得到相同的结果。
但是哪一个是concptually正确的方法。哪个会使用更少的资源
第一种方法有些正确。但是,更接受的方式是:
if ( dr[0][0] is DBNull )
而第二种方式肯定是不正确的。如果你使用第二种方式,你会在两种情况下得到 true:
从概念上讲,比较DBNull.Value
是正确的。
您还可以使用:
if (Convert.IsDBNull(dr[0]))
{
}
您也可以使用我不喜欢的,纯粹因为它是类型比较而不是值比较:
if (dr[0] is DBNull)
{
}
总是使用:
dr[0].IsNull(0)
假设这个函数的创建者知道比较的最佳方式/最有效的方式..
最简单的方法
if (dr[0][0] == DBNull.Value)
//do somethin
是完全有效和可读的。
即使==
比较引用,它也可以在这里工作,因为它DBNUll.Value
是DBNull
类的唯一实例- 所以所有DBNull
值实际上都是这个精确的引用。