提问者:小点点

运算符'<>'未为类型'DBNull'和字符串""定义


使用下面给出的代码时显示一个错误。错误是:Operator'

代码:

 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()

共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()

匿名用户

您的列包含一个空值。在尝试进行其他比较之前,您必须检查是否为空。

所以…

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

匿名用户

使用if sdr1(1)IsNot""然后if Not IsDBNull(sdr1(1))然后改为