26

DBnullいずれかの方法を使用して、データ行の を確認できます。

どちらかを使用して

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

またはすることによって

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

どちらの場合も、同じ結果が得られます。

しかし、どちらが概念的に正しいアプローチですか。どちらがより少ないリソースを使用しますか

4

4 に答える 4

23

最初の方法はある程度正しいです。ただし、より受け入れられる方法は次のとおりです。

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

そして、2番目の方法は間違いなく間違っています。2 番目の方法を使用すると、次の 2 つのケースで 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 に答える