DBNullの判定および回避方法
2011/08/10 17:36Update
データベースクエリの戻り値はDBNull時、Stringなどの変数に代入すると、エラーが発生してしまいます。
※エラー例:型 'DBNull' から型 'String' へのキャストが有効ではありません
本文はDBNull時の判定方法およびその回避方法について解説します。
例:
即ち、
IsDBNull()で判定を行うか、row.Item(i).ToString()でDBNullエラーの回避ができます。
ちなみに
OracleDataReaderにおいても同様の方法で回避できます。
例:
DBNull クラス (System)
本文は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)
Sponsored Link
Comments
- Relative Articles