Cargar imagen en picturebox visual 2008

Tengo un problema que parece simple pero no puedo hallar solución, explico en una mantenimiento en donde realizo registros con imágenes en donde primero registro los datos y después posteriormente inserto la imagen que le pertenece a ese registro.
Mi problema esta al consultar un registro,... Al que le puse una imagen me muestra normal con su imagen pero cuando consulto otro registro que no tiene todavía una imagen me sale un error,,, dejame decirte que solo guardo la ruta de la imagen en mi tabla personal2 en el campo foto varchar(100)
¿Como hago con el bendito if... Es decir si es que no hay una imagen(ojo la ruta ) entonces que me mande un msgbox("no tiene imagen esa persona")
Private Sub consultar_personal()
conectar()
cmd = New SqlCommand
dt.Clear()
cn.Open()
cmd.CommandText = "select codP,apaP,amaP,nomP,foto from personal2 where codP='" & TextBox1.Text & "'"
cmd.Connection = con
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Registro No Existe")
Else
TextBox2.Text = dt.Rows(0).Item("apaP")
TextBox3.Text = dt.Rows(0).Item("amaP")
TextBox4.Text = dt.Rows(0).Item("nomP")
'''aquí
PictureBox1.ImageLocation = dt.Rows(0).Item("foto")
End If
cn.Close()
End Sub
espero que me hayas entendido

2 Respuestas

Respuesta
1

Bueno puedes hacer esto:

.NET

If String.IsNullOrEmpty(dt.Rows(0).Item("foto").toString()) Then

MessageBox.Show(.."mensaje"...)
End If

VB6

If len(dt.Rows(0).Item("foto"))=0 then

MsgBox(.."mensaje"...)

End if

Respuesta
1

Pues lo que toca es consultar el estado del campo, si es nulo o vacío, para eso usas el IF que dice.

Algo así:

If dt.Rows(0).Item("foto").ToString() <> String.Empty Then
    PictureBox1.ImageLocation = dt.Rows(0).Item("foto")
End If

Si es verdadero mostrará la foto.

Si es falso no hará nada, si usas ELSE podrás ponerle una foto estándar para los que no tienen foto.

Si en caso que la expresión venga como NULL desde la BD haces algo así:

If IsDBNull(dt.Rows(0).Item("foto")) = False Then
 PictureBox1.ImageLocation = dt.Rows(0).Item("foto")
End If

Obviamente esto remplaza lo anterior.

Si tienes dudas puedes apoyarte en esto o preguntarme:

http://msdn.microsoft.com/es-es/library/tckcces5(v=vs.80).aspx

http://msdn.microsoft.com/es-es/library/system.dbnull(v=vs.80).aspx

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas