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
Ir a la versión completa