首页 > 解决方案 > 未为类型“DBNull”和类型“DBNull”定义运算符“=”

问题描述

在使用 SqlDataReader(即“阅读器”)时,在尝试检查值是否为 DBNull 时遇到以下错误。

没有为类型“DBNull”和类型“DBNull”定义运算符“=”。

使用以下代码时:

If reader("MyColumn") = DBNull.Value Then
  '...
End If

我通过调用 IsDBNull() 绕过了该错误,我怀疑这是由于“Is”和“=”之间的差异造成的。

但是,我的问题是:为什么不能使用 '=' 运算符进行比较?

标签: vb.netdbnull

解决方案


在 SQL 中,null = null 的计算结果为 false。这可能是没有为这种类型定义相等运算符的原因。

您无法确定未知事物是否等于其他未知事物,从而使相等运算符无用。

用于DBNull.Value.Equals()确定它是否为空。


推荐阅读