Vb.net Convert Integer DBNULL to 0 - error
Pergunta
I'm having this method:
Private Function convertInteger(intInteger As Object) As Integer
If IsDBNull(intInteger) Then
convertInteger = 0
Else
convertInteger = cInt(intInteger)
End If
End Function
But it returns this error:
operator '=' is not defined for type 'integer' and type 'dbnull'
Im trying to convert a DBnull value to 0..
But the problem is that the value im trying to convert is not always DBnull.. so how should i handle this?
Solução
Try this
Private Function convertInteger(intInteger As Object) As Integer
If intInteger = DBNull.Value Then
Return 0
End If
Return intInteger
End Function
As suggested by [Tim Schmelter], look into Nullable types
Outras dicas
Try this
Private Function convertInteger(ByVal intInteger As Object) as Integer
If IsDBNull(intInteger) Then
Return 0
Else
Return CInt(intInteger)
End if
End Function
Private Sub readValue()
Dim cSql As String
Dim oCnn as OleDbConnection
Dim oCmd as OleDbCommand
Dim oDataReader as OleDbDataReader
Dim valor as Integer
oCnn.open()
cSql = "SELECT FIELD_NAME FROM TABLE"
oCmd = New OleDbCommand(cSql, oCnn)
oReader = oCmd.executeReader
if oReader.HasRows then
oReader.read()
valor = IIf(IsDBNull(oDataReader("FIELD_NAME")), 0, oDataReader("FIELD_NAME"))
End If
End Sub
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow