DBNullの判定および回避方法

2011/08/10 17:36Update
TAGS: DBNull | DataRow

データベースクエリの戻り値はDBNull時、Stringなどの変数に代入すると、エラーが発生してしまいます。

※エラー例:型 'DBNull' から型 'String' へのキャストが有効ではありません

本文はDBNull時の判定方法およびその回避方法について解説します。


例:
Dim row As Data.DataRow = ...


'NG例:
age = Integer.Parse(row(0))

'OK例
'IsDBNullで判定
If (Not IsDBNull(row(0))) Then
    age = Integer.Parse(row(0))        'Dim age As Integer
End If

'NG例:
'name = row.Item(1)
'name = row(1)

'OK例:
name = row.Item(1).ToString            'Dim name As String


即ち、
IsDBNull()で判定を行うか、row.Item(i).ToString()でDBNullエラーの回避ができます。

ちなみに
OracleDataReaderにおいても同様の方法で回避できます。
例:
Dim objReader As OracleDataReader = ...
age = CType(objReader("age").ToString, Integer)


参考資料


DBNull クラス (System)

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation

  • Relative Articles