我正在寻找一种更简单的方法来检查值是否为dbNull,并将其转换为空字符串(如果有的话)。将dbNull转换为VB.NET中的字符串的简单方法
的情况,我需要这将是一个例子:
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)是数据库中的空它将作为一个被退回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。 –
http://stackoverflow.com/a/29611932/1070452 – Plutonix