none
Como cargar una imagen de mi base de datos en un picturebox con Linq en VB.NET RRS feed

  • Pregunta

  • Mi codigo esta de esta manera pero no encuentro como hacer para carga la imagen desde la base de datos me funciona todo de maravillas solo tengo ese problemita por que ya eh podido guardar la imagen en la base de datos.

    Dim _profesor = db.Empleados.Where(Function(b) b.EmpleadoID = txtProID.Text)

            Dim img = db.Empleados.Where(Function(i) i.Foto = Imagen_Bytes(pbProfesor.Image))

            If _profesor.Count > 0 Then
                txtProNombre.Text = _profesor.First.Nombre
                txtProApellido.Text = _profesor.First.Apellido
                txtProOcupacion.Text = _profesor.First.Cargo
                txtProArea.Text = _profesor.First.Area
                txtProTelefono.Text = _profesor.First.Telefono
                txtProHorario.Text = _profesor.First.Horarios
                txtProDireccion.Text = _profesor.First.Direccion
                pbProfesor.Image = _profesor.First.Foto                       <--------Aqui me sale este error(Un valor de tipo 'System.Data.Linq.Binary' no se puede convertir en 'System.Drawing.Image')


            Else
                borrarcampos()
                MsgBox("Error: El ID numero " + txtProID.Text + " no existe o no tiene datos", MsgBoxStyle.Critical, "Error")

            End If

    • Cambiado Enrique M. Montejo martes, 7 de febrero de 2012 11:13 consulta sobre LINQ (De:Lenguaje VB.NET)
    domingo, 5 de febrero de 2012 15:26

Todas las respuestas

  • hola

    esa propiedad de _profesor.First.Foto es del tipo Byte(), o sea un byte array ?

     

    porque si lo es podrias usar

    Dim ms As New MemoryStream(_profesor.First.Foto)
    pbProfesor.Image = Image.FromStream(ms);

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 5 de febrero de 2012 17:41
  • Excusame Leandro pero me da este error:
    Error de resolución de sobrecarga porque ninguna de las funciones 'New' a las que se tiene acceso se puede llamar con estos argumentos:
        'Public Sub New(buffer() As Byte)': Un valor de tipo 'System.Data.Linq.Binary' no se puede convertir en '1-matriz dimensional de Byte'.
        'Public Sub New(capacity As Integer)': Un valor de tipo 'System.Data.Linq.Binary' no se puede convertir en 'Integer'.
    Dim ms As New MemoryStream(_profesor.First.Foto)
    pbProfesor.Image = Image.FromStream(ms);


    en la parte que esta en negrita es que me da el error, te recuerdo que el pbProfesor es el PictureBox en donde la imagen se cargara al momento de hacer la consulta en la BD.

    Gracias!
    lunes, 6 de febrero de 2012 14:59
  • Ya pude resolver el problemita solo era hacer lo siguiente:

    pbProfesor.Image = Bytes_Imagen(_profesor.First.Foto.ToArray)

    Gracias por todo!


    José Aug. De la Rosa P.

    lunes, 20 de febrero de 2012 16:34