首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运算符'<>‘未定义为'DBNull’和string "“

运算符'<>‘未定义为'DBNull’和string "“
EN

Stack Overflow用户
提问于 2015-04-02 04:55:17
回答 5查看 11.7K关注 0票数 0

在使用下面给出的代码时,会显示一个错误。错误是:Operator '<>' is not defined for type 'DBNull' and string "".帮助我找到合适的解决方案。谢谢。

代码:

代码语言:javascript
复制
 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()
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-02 05:06:33

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

所以..。

代码语言:javascript
复制
If DBNull.Value Is sdr1(1) Then
    '  Got a null value from the database.
End If

如果您不关心这个值是空值还是空值--只想把它们处理得一样.

代码语言:javascript
复制
If String.IsNullOrEmpty(sdr1(1)) Then
    '  The value is either null or empty.
End If
票数 2
EN

Stack Overflow用户

发布于 2015-04-02 05:08:49

在任何操作中使用数据之前,需要检查所比较的数据是否为NULL:

代码语言:javascript
复制
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()

或者你可以简单地使用

代码语言:javascript
复制
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()
票数 3
EN

Stack Overflow用户

发布于 2015-04-02 05:04:17

然后使用If sdr1(1) IsNot "" ThenIf Not IsDBNull(sdr1(1))代替<>,这样可以获得更好的结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29405212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档