DBnull
いずれかの方法を使用して、データ行の を確認できます。
どちらかを使用して
if(dr[0][0]==DBNull.Value)
//do somethin
またはすることによって
if(dr[0][0].ToString().IsNullOrEmpty())
//do something
どちらの場合も、同じ結果が得られます。
しかし、どちらが概念的に正しいアプローチですか。どちらがより少ないリソースを使用しますか
最初の方法はある程度正しいです。ただし、より受け入れられる方法は次のとおりです。
if ( dr[0][0] is DBNull )
そして、2番目の方法は間違いなく間違っています。2 番目の方法を使用すると、次の 2 つのケースで true になります。
概念的には、との比較DBNull.Value
は正しいものです。
また、使用することができます:
if (Convert.IsDBNull(dr[0]))
{
}
値の比較ではなく型の比較であるという理由だけで、私が好きではないものを使用することもできます。
if (dr[0] is DBNull)
{
}
常に使用されます:
dr[0].IsNull(0)
この関数の作成者が比較の最良の方法/最も効率的な方法を知っていると仮定します..