データベースから取り出した値が null かどうかをチェックする場合には注意が必要です。
間違った方法でチェックをしてしまいがちなので、正しい方法を覚えておきましょう。
ダメな例
以下のようなコードではフィールドの値が NULL であるかを正しく判断する事は出来ません。
foreach (DataRow row in dataTable.Rows)
{
if (null == row["field1"]) //正しく判断できない!
{
:
}
}
DataRowクラスに対して null で比較してはいけません。
正しい例
DataRowクラスのフィールドの値が NULL の場合には DBNull.Value という値がセットされています。
DBNull.Value を使って比較するか、IsNullメソッドを使ってチェックしましょう。
DBNull.Valueを使ってチェックする例
foreach (DataRow row in dataTable.Rows)
{
if (DBNull.Value == row["field1"])
{
:
}
}
IsNullメソッドを使ってチェックする例
foreach (DataRow row in dataTable.Rows)
{
if (row.IsNull("field1"))
{
:
}
}

コメント
コメントを投稿