none
Como carregar uma foto do ACCESS para uma PictureBox? (Estou enfrentando erros no meu código) RRS feed

  • Pergunta

  • O objetivo é simples e bem único, carregar uma foto do meu banco de dados feito em Access para uma Picturebox. Tentei usar esse código:

    Private Sub pesquisanome()
            Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\_ssdb.mdb;Jet OLEDB:Database Password=stsecurity")
                Try
                    con.Open()
                    Dim dr As OleDbDataReader = Nothing
                    Dim comando As String = "SELECT ID, Foto, Nome_completo, Data_nascimento, Sexo, Telefone, Celular, RG, CPF, Endereco, Cidade, Bairro, UF, CEP, Email, Observacoes FROM Clientes WHERE Nome_completo LIKE '%" & txtnome.Text & "%'"
                    Dim cmd As OleDbCommand = New OleDbCommand(comando, con)
                    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                    Dim dt As New DataTable
                    da.Fill(dt)
                    ClientesDataGridView.DataSource = dt
                    dr = cmd.ExecuteReader(CommandBehavior.SingleRow)
                    If dr.HasRows Then
                        dr.Read()
                        IDTextBox.Text = dr.Item("ID")
                        foto.Image = dr.Item("Foto")
                        Nome_completoTextBox.Text = dr.Item("Nome_completo")
                        Data_nascimentoMaskedTextBox.Text = dr.Item("Data_nascimento")
                    Else
    
                    End If
                Catch ex As Exception
                    MessageBox.Show("Erro: " & ex.Message, "Erro detectado", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Finally
                    con.Close()
                End Try
            End Using
        End Sub


    Porém ele me dá um erro, dizendo que não posso colocar um arquivo do access em byte pra picturebox que só aceita do tipo drawing.

    Ou seja, o que tento carregar são dados em bytes, e o tipo de dados da picturebox é drawing.image.

    Me ajudem?

    sexta-feira, 2 de outubro de 2015 18:01

Respostas

  • Você precisa criar um MemoryStream para armazenar os dados da imagem conforme exemplo:

    Dim bytes() As Byte
    bytes = dr.Item("Foto")
    Dim ms As New MemoryStream(bytes)
    PictureBox1.Image = Image.FromStream(ms)

    • Sugerido como Resposta Eduardo xUni sábado, 3 de outubro de 2015 15:56
    • Marcado como Resposta Marcos SJ segunda-feira, 5 de outubro de 2015 13:46
    sábado, 3 de outubro de 2015 03:31