La Web del Programador: Comunidad de Programadores
 
    Pregunta:  52979 - COMO CONTROLO LO VALORES NULOS DE UN CAMPO DE UNA TABLA
Autor:  Julio Mogrovejo
SOy nuevo en Visual .Net
Ante todo gracias por su apoyo
Estoy mostrando valores de los campos de una tabla a mis labels, cada vez que presiono un boton siguiente y cuando el campo del registro no tiene informacion (NULO) me sale el siguiente error:

Excepción no controlada del tipo 'System.InvalidCastException' en microsoft.visualbasic.dll
Información adicional: La conversión del tipo 'DBNull' al tipo 'String' no es válida.

he tratado de controlar el error asi:
if IsDBNull(ds.Tables("mitabla").Rows(I).Item(4).GetType) =True
Then
MsgBox("No hay data en el campo")
LblAlt_C.Text = ""
Else
LblAlt_C.Text = ds.Tables("mitabla").Rows(I).Item(4)
End If

!estoy usando una tabla de access!
alguien me puede ayudar.
Mil gracias

  Respuesta:  Braulio Romero
puedes modificar tu codigo asi:

if IsDBNull(ds.Tables("mitabla").Rows(I).Item(4)) Then
MsgBox("No hay data en el campo")
LblAlt_C.Text = ""
Else
LblAlt_C.Text = ds.Tables("mitabla").Rows(I).Item(4)
End If

o bien, hacer solamente esto:
LblAlt_C.Text = "" & ds.Tables("mitabla").Rows(I).Item(4)

u otra opciones es que como el dato viene nulo, a veces los dataset hace como que el campo no esxiste, entonces tienes que validar que realmente exista el campo, independintemente que traiga NULL o no

ejemplo:

if ds.Tables("mitabla").Rows(I).Item(4) is nothing = false then
LblAlt_C.Text = ds.Tables("mitabla").Rows(I).Item(4)
else
LblAlt_C.Text = ""
endif

  Respuesta:  Migue Rueda
Es un error muy fácil de controlar solo tienes q manejar excepciones, lo q tienes q hacer es lo siguiente:

Try
Aqui pon todos los objetos q estan recibiendo datos, y q pueden quedar blanco, para q la excepcion maneje el error q se produce x el ingreso de datos en blanco.
x ejemplo puede ser algo asi:
c=txtejemplo.text

catch ex as exception

MsgBox(ex.Message)

end try

como ves en el ejemplo q te puse, se puede ver q en algun momento tu puedes ingresar en la caja de texto un dato vacio(NULL) pero el try va a manejar ese error y en vez de cortar la ejecución de tu programa te va a mandar un mensaje de error pero tu programa va a seguir corriendo
Esto se llama manejo de una excepción y eso te sirve para todo tipo de ingreso de datos, como las cajas de texto, archivos, bases de datos, etc.
Creo q con eso esta saldada tu duda.

Migue