こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

NULLか空文字かの判別(DBの値)

VB.NETで、Access(mdb)のテーブルから
DAOでデータ取得し、取得したレコード毎に値のチェック処理をします。

その値がNULLかどうかは、isDBNULL関数を使用すれば判定できますが、
空文字についてはどう判定すればわかりますでしょうか??

String型にキャストして「= ""」で判定しようとしましたが、
空文字の場合だとString型にキャストする際にエラーが発生します。

家で試せる環境にないので、エラーが出るかどうかわからないのですが
String.IsNULLOrEmptyで判定できるのでしょうか?
これもString型にキャストする必要がありそうなので、エラーが出るようにも思います・・・。

オブジェクト型の値が空文字かどうか判定する方法を教えていただけないでしょうか。

投稿日時 - 2017-12-17 16:50:47

QNo.9408821

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

NULLの場合 => System.DBNull.Value
空文字の場合 => 空文字
が返ります。

空文字の場合は空文字が返ってくるのでその判定で問題ないはずです。
エラーが出るのはおそらくNULLをStringにキャストしているからと思われます。
以下の判定で問題ないはずです。

If IsDBNull(a) Then
Debug.Print("NULL")
ElseIf DirectCast(a, String) = "" Then
Debug.Print("空文字")
End If

ちなみにAccessのテーブルに直接空文字を入力するときは""を入力する必要があります。単に空文字を入力するとNULLになります。

投稿日時 - 2018-01-11 18:54:08

あなたにオススメの質問