C#にはデータベースから取得したデータをメモリ上に格納する為のクラス「DataSet」や「DataTable」があります。
データベースから取り出した値が 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")) { : } }
関連記事
コメントをお書きください