を使用して、特定のタイプのレコードがいくつあるかをチェックするクエリがありますcount()
。
select count(*) from abc where date="some value"
ここで、クエリがまたはを返す可能性はありますnull
かDBNull
? それらを確認する必要がありますか?
を使用して、特定のタイプのレコードがいくつあるかをチェックするクエリがありますcount()
。
select count(*) from abc where date="some value"
ここで、クエリがまたはを返す可能性はありますnull
かDBNull
? それらを確認する必要がありますか?
私はそうは思いません: カウントしているので、ゼロ以上を返すことができます。
NULL
no resultsはthere're zero resultsであるため、間違った結果になります。
いいえ、常に以上の数値を返し0
ます。
これが私がすることです:
if (rdr.HasRows)
{
rdr.Read();
if (rdr["MyField"] != DBNull.Value)
{
bla bla....
}
そうです、DBNullをチェックしてください。
ExecuteScalar を使用している場合、呼び出しは DbNull オブジェクトではなく null を取得すると思います。
常に値を受け取るために私が行っていることは、リクエストをカプセル化することです: SELECT ISNULL((SELECT COUNT(date) FROM abc WHERE date = "some value"), 0)
サージ
DbNull
データベース指向であるため、確認する必要があります。