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来添加正确的代码格式。还要考虑对代码添加任何解释。