CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Un problema con DBNull en Visual Studio 2005

(1/1)

jotae:
Amigos: tengo este código que funciona si existen registros que cumplan el select pero de lo contrario me da el siguiente error:

La conversión del tipo DBNULL en el tipo integer no es válida


--- Código: vb.net --- vTotal = 0vMes = cmbMeses.SelectedItemvAno = cmbAno.SelectedItemSql = "SELECT SUM(monto) As TOTALP from pagos where status='ACTIVO' and mespago= '" & vMes & "' and ano= " & vAno & ""   cmd = New OleDbCommand(Sql, con)   dread = cmd.ExecuteReader()   While dread.Read    vTotal = dread("TOTALP")    If dread("TOTALP") Is DBNull.Value Then     txtPagado.Text = "No hay registros"    Else     txtPagado.Text = String.Format("{0:n2}", vTotal)    End If   End While   dread.Close()  Catch ex As Exception   MessageBox.Show(ex.Message, "", MessageBoxButtons.OK)  Finally  End Try 
Pero eso es precisamente lo que trato de controlar: que si TOTALP es 0, haga una cosa y si no, otra. Lo peor de todo es que he probado unos diez códigos diferentes pero no hay forma de que funcione. Necesito de su ayuda. Gracias!!!

jotae:
Gracias a todos. Por fin logré solucionarlo con este código: Si a alguien le sirve, aquí lo dejo. Funciona OK!!

   
--- Código: vb.net ---Sql = "SELECT SUM(monto) As TOTALP from meses where status='ACTIVO' and mespago= '" & vMes & "' and ano= " & vAno & ""   cmd = New OleDbCommand(Sql, con)   dread = cmd.ExecuteReader()   While dread.Read    If dread("TOTALP") Is DBNull.Value Then     txtPendientePagado.Text = "No hay registros"    Else     vTotal = dread("TOTALP")     txtPendiente.Text = String.Format("{0:n2}", vTotal)    End If   End While   dread.Close()  Catch ex As Exception   MessageBox.Show(ex.Message, "", MessageBoxButtons.OK)  Finally  End Try 

Navegación

[0] Índice de Mensajes

Ir a la versión completa