VB.NET

型 'DBNull' から型 'String' へのキャストが有効ではありません

最終更新日:2004/10/10

データベースから Null のデータを取得して文字列型の変数に代入すると、エラーが発生します。VB6 までは IsNull という関数があり、これを使うことで値が Null かどうかを判定できました。VB.NET では IsNull 関数はなくなり、IsDBNull という関数に変わりました。

ただし、IIf 構文を使って値の判定をすると、実行時に表題のようなエラーになるようです。

Dim str As String = IIf(IsDBNull(Rec.Item(1)), "", Rec.Item(1))

理由はわかりませんが、下記のように書けばエラーを回避できます。

Dim str As String
If (IsDBNull(Rec.Item(1))) Then
    str = ""
Else
    str = Rec.Item(1)
End If