Vb.net将整数DBNULL转换为0-错误

Vb.net将整数DBNULL转换为0-错误,vb.net,integer,dbnull,Vb.net,Integer,Dbnull,我有这个方法: Private Function convertInteger(intInteger As Object) As Integer If IsDBNull(intInteger) Then convertInteger = 0 Else convertInteger = cInt(intInteger) End If End Function 但它返回以下错误: 未为类型“integer”和类型“dbnull”定义运算符

我有这个方法:

Private Function convertInteger(intInteger As Object) As Integer

    If IsDBNull(intInteger) Then
        convertInteger = 0
    Else
        convertInteger = cInt(intInteger)
    End If

End Function
但它返回以下错误:

未为类型“integer”和类型“dbnull”定义运算符“=”

我正在尝试将DBnull值转换为0

但问题是,我尝试转换的值并不总是DBnull。。那么我该如何处理呢?

试试这个

Private Function convertInteger(intInteger As Object) As Integer

    If intInteger = DBNull.Value Then
        Return 0
    End If

    Return intInteger

End Function
Private Function convertInteger(ByVal intInteger As Object) as Integer
   If IsDBNull(intInteger) Then
       Return 0
   Else
       Return CInt(intInteger)
   End if
End Function
正如[Tim Schmelter]所建议的,研究可为空的类型

Private Function convertInteger(intInteger As Object) As Integer

    If intInteger = DBNull.Value Then
        Return 0
    End If

    Return intInteger

End Function
Private Function convertInteger(ByVal intInteger As Object) as Integer
   If IsDBNull(intInteger) Then
       Return 0
   Else
       Return CInt(intInteger)
   End if
End Function
私有子读取值 作为字符串的Dim cSql 作为OLEDB连接的Dim oCnn 作为OLEDB命令的Dim oCmd 作为OLEDB数据读取器的Dim oDataReader 作为整数的Dim valor 开放式 cSql=从表中选择字段名称 oCmd=新的OleDbCommandcSql,oCnn oReader=oCmd.executeReader 如果oReader.HasRows,则 阅读 valor=IIFISBNullODataReaderField\u名称,0,oDataReaderFIELD\u名称 如果结束 端接头
为什么不使用Int32的null值呢?它有很高的价值。属性。在项目设置中启用严格选项。然后修复编译错误。然后回到这里。哇-这解决了问题,康拉德!谢谢!请不要建议使用旧的VB语法methodName=returnValue,这仅适用于兼容性原因。VB.NET与C的工作原理相同,它有一个返回值:return0。对此我很抱歉。我甚至没有看到函数名edit post来添加正确的代码格式。还要考虑对代码添加任何解释。