使用下面给出的代码显示一个错误。错误是:Operator '<>' is not defined for type 'DBNull' and string "".
帮我找到合适的解决方案。谢谢。
代码:
If sdr1.Read Then
If sdr1(1) <> "" Then
NameLabel.Text = sdr1(0).ToString + " " + sdr1(1).ToString + " " + sdr1(2).ToString
Else
NameLabel.Text = sdr1(0).ToString + " " + sdr1(2).ToString
End If
dept_id.Text = sdr1(3)
End If
sdr1.Close()
答案 0 :(得分:3)
在任何操作中使用之前,您需要检查您要比较的数据是否为NULL:
If sdr1.Read Then
If Not IsDbNull(sdr1(1)) Then
If sdr1(1) <> "" Then
NameLabel.Text = sdr1(0).ToString + " " + sdr1(1).ToString + " " + sdr1(2).ToString
Else
NameLabel.Text = sdr1(0).ToString + " " + sdr1(2).ToString
End If
End If
dept_id.Text = sdr1(3)
End If
sdr1.Close()
或者你可以简单地使用
If sdr1.Read Then
If Not IsDbNull(sdr1(1)) Then
NameLabel.Text = sdr1(0).ToString + " " + sdr1(1).ToString + " " + sdr1(2).ToString
Else
NameLabel.Text = sdr1(0).ToString + " " + sdr1(2).ToString
End If
dept_id.Text = sdr1(3)
End If
sdr1.Close()
答案 1 :(得分:2)
您的列包含空值。在尝试进行其他比较之前,您必须检查是否为空。
因此...
If DBNull.Value Is sdr1(1) Then
' Got a null value from the database.
End If
如果您不关心该值是空还是空 - 只想对它们进行相同处理......
If String.IsNullOrEmpty(sdr1(1)) Then
' The value is either null or empty.
End If
答案 2 :(得分:1)
使用If sdr1(1) IsNot "" Then
或If Not IsDBNull(sdr1(1))
然后使用<>
来获得更好的结果
答案 3 :(得分:0)
答案 4 :(得分:0)
使用而不是If函数
try
If sdr1.Read Then
If Not IsDbNull(sdr1(1)) Then
NameLabel.Text = sdr1(0).ToString + " " + sdr1(1).ToString + " " + sdr1(2).ToString
Else
NameLabel.Text = sdr1(0).ToString + " " + sdr1(2).ToString
End If
dept_id.Text = sdr1(3)
End If
Catch ex As Exception
end try