我想生成一些从MS-Access数据库检索并存储在DataTable对象/变量myDataTable中的数据的格式化输出。但是,myDataTable中的某些字段包含dbNull数据。因此,如果任何姓,名或sID字段的值为dbNull,则以下VB.net代码段将给出错误。

   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而不需要每次检查数据是否为this question中的dbNull时,如何使上述代码工作?

最佳答案

我知道的唯一方法是对其进行测试,如果可以简化操作,则可以组合使用。

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

我用VB编写,因为即使您混合使用多种语言,也可以满足您的需要。

编辑

清理以使用IsDbNull使其更具可读性

关于vb.net - 在vb.net中处理dbnull数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/222834/

10-12 13:57