1. ホーム
  2. vb.net

vb.net での dbnull データの処理

2023-09-20 23:22:23

質問

MS-Access データベースから取得したデータを、あるフォーマットで出力したい。 データテーブル オブジェクト/変数、myDataTable に格納されています。しかし、myDataTable のいくつかのフィールドには dbNull というデータを持っています。そのため、以下のVB.netコードスニペットは、いずれかのフィールドの値が以下のような場合、エラーになります。 ラストネーム , イニシャル または sID dbNull .

   dim myDataTable as DataTable
   dim tmpStr as String
   dim sID as Integer = 1

   ...
   myDataTable = myTableAdapter.GetData() ' Reads the data from MS-Access table
   ...

   For Each myItem As DataRow In myDataTable.Rows

    tmpStr = nameItem("lastname") + " " + nameItem("initials")

    If myItem("sID")=sID Then
        ' Do something
    End If

    ' print tmpStr

   Next

では、上記のコードを、フィールドに dbNull のように、データが dbNull であるかどうかを毎回チェックすることなく、上記のコードを動作させるにはどうしたらよいでしょうか? この質問 ?

どのように解決するのですか?

私が知っている唯一の方法は、それをテストすることです。それを簡単にするために、複合的なifを行うことができます。

If NOT IsDbNull(myItem("sID")) AndAlso myItem("sID") = sId Then
   'Do success
ELSE
   'Failure
End If

言語が混在していますが、必要なもののようなのでVBで書きました。

編集

より読みやすくするためにIsDbNullを使用するようにクリーンアップされました。