Esta facil ayudenme

Caz
18 de Noviembre del 2005
Resulta que hago una consulta a la base de datos y cuando quiero asignar los valores que tengo en el SqlDatareader me da un error en el campo que me trae un valor nulo

El operador no es válido para tipo 'DBNull' y tipo 'VariantType'

como soluciono el error...?

txtcodigo.text=rs("codigo")

si rs("codigo") es nulo me da error como soluciono por fa


Jose Antonio
18 de Noviembre del 2005
El problema es que no puedes meter un NULL para sustituir el testo vacio
Debes hacer antes del

txtcodigo.text=rs("codigo")
la comprobacion

pon esta funcion
Private Function controlaNulos(ByVal dr As SqlClient.SqlDataReader, ByVal campo As Integer)
Dim temp As String
If Not dr.IsDBNull(campo) Then

temp = dr.GetString(campo)
If temp.Length = 0 Then
temp = "No definido"
End If

Else
temp = "Desconocido"
End If
Return temp
End Function

la llamada es

txtcodigo.text=controlaNulos(drSqlServer, 7)

siendo drSqlServer el datareader y 7 el campo a controlar
Chao

thessen
18 de Noviembre del 2005
Prueba con :

txcodigo.text = iif (IsDBNull (rs(\\\\\\\\\\\\\\\"codigo\\\\\\\\\\\\\\\")),\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",rs(\\\\\\\\\\\\\\\"Codigo\\\\\\\\\\\\\\\"))

esto te pone \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\" en caso de que sea nulo y su valor en el caso contrario