【发布时间】:2015-10-28 20:26:25
【问题描述】:
我正在寻找一种更简单的方法来检查值是否为 dbNull,如果是,则将其转换为空字符串。
我需要这种情况的一个例子是:
Dim dt As New DataTable
Dim conn As New OleDbConnection(someConnStr)
Dim adap As New OleDbDataAdapter(qryCSSInfo, cssConn)
adap.Fill(dt)
Dim someStr As String = "The first column of the first row returned: " & dt.rows(0).item(0)
Msgbox(someStr)
问题是,如果数据库中的 dt.rows(0).item(0) 为 null,它将作为 dbNull 值返回,显然不能附加到字符串。
我对这个问题的解决方案是使用 if 语句将值替换为空白字符串:
Dim dt As New DataTable
Dim conn As New OleDbConnection(someConnStr)
Dim adap As New OleDbDataAdapter(qryCSSInfo, cssConn)
adap.Fill(dt)
If Not isDBNull(dt.rows(0).item(0)) then
Dim someStr As String = "The first column of the first row returned: " & dt.rows(0).item(0)
Else
Dim someStr As String = "The first column of the first row returned: " & ""
End If
Msgbox(someStr)
这对我的目的来说很好用,但是如果我必须对表格中需要使用的每一列进行此项检查,就会变得不堪重负。假设我想用这个字符串显示表中的 10 列。我必须对每一个都进行检查,以确保它们不为空。有没有更简单或更简单的方法?
【问题讨论】:
-
使用 ole 变得相当麻烦。 ADO.NET 倾向于为您生成 isColNameNull() 函数,因此使用它会更好一些,但想法是一样的。在尝试使用数据之前,您必须检查 dbnull。