Visual Basic.NET - 'DBNull' al tipo 'String' no es válida

 
Vista:

'DBNull' al tipo 'String' no es válida

Publicado por MANUEL (31 intervenciones) el 23/09/2004 18:28:49
QUIEN ME PUEDE DAR LA SOLUCION PARA ESTE 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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:'DBNull' al tipo 'String' no es válida

Publicado por htb (32 intervenciones) el 23/09/2004 19:14:41
Null y String son objetos diferentes. no puede convertir null a string lo que puedes hacer es preguntar si el campo es nulo.
Ej:
Dim Hilera as string
If IsDbNull("Mi_Campo") then
hilera = ""
else
Hilera = "Mi_Campo"
End if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por htb (32 intervenciones) el 23/09/2004 19:14:41
Null y String son objetos diferentes. no puede convertir null a string lo que puedes hacer es preguntar si el campo es nulo.
Ej:
Dim Hilera as string
If IsDbNull("Mi_Campo") then
hilera = ""
else
Hilera = "Mi_Campo"
End if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por Edgar (1501 intervenciones) el 23/09/2004 19:26:11
Hola

Puedes usar el método DbNull.ToString()

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por MANUEL (31 intervenciones) el 23/09/2004 20:43:01
ESTE ES EL CODIGO, EN LA PARTE DE NOMBRE Y APELLIDO A LA HORA DE PASAR EL CAMPO DE LA TABLA RESERVA A LOS TEXBOX RECLAMA, PERO SI DEJO EL PURO MAIL PASA EL CAMPO DE ESTE SIN PROBLEMA, PERO CON EL NOMBRE Y APELLIDOS TENGO EL PROBLEMA.
connection.Open()
Dim resultado As String

Dim LRegistro As New MySqlCommand("SELECT * FROM reserva WHERE id_reserva='" & reserva.Text & "'", connection)
Dim dato As MySqlDataReader = LRegistro.ExecuteReader(CommandBehavior.SingleRow)

If dato.Read() = True Then
resultado = dato("id_reserva")
mail.Text = dato.Item("mail")
nombre.Text = dato.Item("nombre")
apellidos.Text = Registro.item("apellidos")
Else
MessageBox.Show("Numero de reserva no esta registrado")
End If
dato.Close()
connection.Close()

EL ERROR ES :
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:"DBNull" al tipo "String" no es válida

Publicado por Edgar (1501 intervenciones) el 23/09/2004 20:56:34
Hola

Intenta con esto

1
2
3
4
5
6
7
8
9
10
If dato.Read() = True Then
resultado = dato("id_reserva") .ToString()
mail.Text = dato.Item("mail") .ToString()
nombre.Text = dato.Item("nombre") .ToString()
apellidos.Text = Registro.item("apellidos") .ToString()
Else
MessageBox.Show("Numero de reserva no esta registrado")
End If
dato.Close()
connection.Close()
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por MANUEL (31 intervenciones) el 23/09/2004 22:00:59
EDGAR DIO RESULTADO TU RECOMENDACION DEL ToString(), POR LO MENOS YA NO SE CAE LA APLICACION, PERO SI EN EL NOMBRE Y APELLIDO NO APARECE EL VALOR DE ESE CAMPO. AL IGUAL QUE EL SOCIO HTB PIENSO QUE EL SELECT ESTA DEJANDO EN NULO ESOS CAMPO, Y NO TENGO IDEA EL PORQUE, LOS OTROS CAMPOS APARECEN LOS DATOS COMO CORRESPONDE MENOS EN ESTOS DOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por Alex (1 intervención) el 25/07/2012 00:45:55
Gracias Edgar, con el ToString() se soluciono el problema, gracias nuevamente

Saludos
Alex
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por CARLOS (2 intervenciones) el 12/10/2015 14:43:01
GRACIAS EDGAR POR TU AYUDA...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por htb (32 intervenciones) el 23/09/2004 20:58:08
Sigo pensando que el select te devuelve campos con valores nulos:

usa:
mail.Text = iif(IsDbnull(dato.Item("mail") ,"",IsDbnull(dato.Item("mail"))
nombre.Text = iif(IsDbnull(dato.Item("nombre") ,"",dato.Item("nombre"))
apellidos.Text = iif(IsDbnull(Registro.item("apellidos"),"",Registro.item("apellidos"))

Tambien haz el select y fijese en el resultado para verificar que retorna nulos:

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:'DBNull' al tipo 'String' no es válida

Publicado por MANUEL (31 intervenciones) el 23/09/2004 21:53:17
TODOS LOS CAMPOS DE LA TABLA ESTAN CON VALORES, ES MAS E INGRESADO VARIOS MAS PARA VER SI ERA EL REGISTRO QUE CONSULTABA EL PROBLEMA PERO NO ES ASI, ¿AHORA TU DICES QUE PUEDE SER QUE EL SELECT DEBE ESTAR ARROJANDO VALORES NULOS APESAR DE QUE LA TABLA LOS TENGA?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SIGO CON PROBLEMAS, PERO YA NO SE CAE LA APLICA

Publicado por MANUEL (31 intervenciones) el 23/09/2004 22:18:35
EDGAR DIO RESULTADO TU RECOMENDACION DEL ToString(), POR LO MENOS YA NO SE CAE LA APLICACION, PERO SI EN EL NOMBRE Y APELLIDO NO APARECE EL VALOR DE ESE CAMPO. AL IGUAL QUE EL SOCIO HTB PIENSO QUE EL SELECT ESTA DEJANDO EN NULO ESOS CAMPO, Y NO TENGO IDEA EL PORQUE, LOS OTROS CAMPOS APARECEN LOS DATOS COMO CORRESPONDE MENOS EN ESTOS DOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SIGO CON PROBLEMAS, PERO YA NO SE CAE LA APLICA

Publicado por Carlos Escribano Rey (59 intervenciones) el 24/09/2004 09:18:31
¿Y seguro que has escrito correctamente la consulta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SIGO CON PROBLEMAS, PERO YA NO SE CAE LA APLICA

Publicado por MANUEL (31 intervenciones) el 24/09/2004 15:11:55
LA CONSULTA ESTA BIEN ESCRITA, AHORA DESCUBRI QUE POR ALGUN MOTIVO SOLO TOMA 6 CAMPOS DE LA TABLA CON SUS VALORES COREESPONDIENTES PERO AL AGREGAR UN SEPTIMO ESE NO LO MUESTRA CON EL VALOR LO MUESTRA COMO NULO, ESO SI QUE LA APLICACION YA NO SE CAE PERO EL 7 CAMPO QUE SE PONE NO LO MUESTRA EN EL TEXTBOX.
ESTE ES EL CODIGO;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
connection.Open()
        Dim aux_nom As DBNull
        Dim resultado As String
        Dim LRegistro As New MySqlCommand("SELECT mail,nombre,apellidos,habitres,fecsal,fecini from reserva WHERE id_reserva='" & reserva.Text & "'", connection)
        Dim dato As MySqlDataReader = LRegistro.ExecuteReader(CommandBehavior.SingleRow)
 
        If dato.read() = True Then
            mail.Text = dato("mail").ToString()
            nombre.Text = dato("nombre").ToString()
            apellidos.Text = dato("apellidos").ToString()
            habita.Text = dato("habitres").ToString()
            fsal.Text = dato("fecsal").ToString()
            fini.Text = dato("fecini").ToString()
        Else
            MessageBox.Show("Numero de reserva no esta registrado")
        End If
        dato.Close()
        connection.Close()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SIGO CON PROBLEMAS, PERO YA NO SE CAE LA APLICA

Publicado por Kanaima DJ (1 intervención) el 04/02/2012 01:13:15
Bueno amigo yo tube un proble, no soy programador experto, pero esto me funciono

1
2
3
4
5
if DATASET.tabla(Bindingsource.position).Tucampoisdbdnull then
     'Tu codigo
Else
     'Tu codigo
End if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar