PESQUISAR IMAGENS PELO BANCO DE DADOS MYSQL NO VB.

 Tópico anterior Próximo tópico Novo tópico

PESQUISAR IMAGENS PELO BANCO DE DADOS MYSQL NO VB.

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#479005 - 09/01/2018 21:22:26

CAIOG
SAO BERNARDO DO CAMPO
Cadast. em:Janeiro/2018


Boa Noite !

Estou com problemas ao pesquisar fotos armazenadas no banco de dados MYSQL no PHPADMIN no picturebox e no datagridview

Já pesquisei alguns vídeos no youtube,outros sites,mas o erro persiste. Pelo que eu entendi é porque no banco de dados o campo "foto" é tipo LONGBLOB E NO VISUAL BASIC não está conseguindo converter e/ou reconhecer a imagem gravada pela quantidade extensa de números.Mas não achei uma forma pala solucionar esta questão de mostrar imgaens gravadas em formato longblob para byte no visual basic. Alguém pode me dar alguma dica ou orientação???

Obs: o banco de dados está armazenado no php admin atráves do programa vertrigo e da conexão mysql ODBC

Ocorre o erro


`erro:  An unhandled exception of type 'System.OverflowException' occurred in System.Data.dll

Additional information: Operação aritmética resultou em um estouro."
<>Imports System.IO
Imports System.Data.Odbc
Imports System.Drawing.Imaging

Public Class FrmAlunos_Cadastrados
    Private Sub listar()

        filtrar("select * from aluno", "aluno")
        DataGridView1.DataSource = dados
        DataGridView1.DataMember = "aluno"
        olecon.Close()

    End Sub

    Private Sub btnpesquisar_Click(sender As Object, e As EventArgs) Handles btnpesquisar.Click
      
        Dim comando = "select * from aluno where cod_rm =" + txtra.Text

        pesquisar(comando)

        If guarda.Read() Then
            txtra.Text = guarda(1).ToString()
            Dim bytePicData() As Byte
            bytePicData = guarda.Item("foto")
            Dim PicMemStream As New System.IO.MemoryStream(bytePicData)
            PictureBox1.Image = Image.FromStream(PicMemStream)

        Else
            MsgBox("RM não localizado")
            txtra.Clear()
            PictureBox1.Image = Nothing
        End If


        guarda.Close()
        olecon.Close()

    End Sub

    Private Sub btnlistar_Click(sender As Object, e As EventArgs) Handles btnlistar.Click
      
        listar()
        olecon.Close()
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnhome.Click
        FrmFuncionários.Show()
        Me.Close()
    End Sub

    Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

        Dim linha = DataGridView1.CurrentCellAddress.Y
        txtra.Text = DataGridView1(1, linha).Value.ToString()

        Dim comando = "select * from aluno where cod_rm =" + txtra.Text
        pesquisar(comando)



        If guarda.Read() Then

            Dim bytePicData() As Byte
            bytePicData = guarda.Item("foto") "o erro ocorre aqui

`erro:  An unhandled exception of type 'System.OverflowException' occurred in System.Data.dll

Additional information: Operação aritmética resultou em um estouro."



            Dim PicMemStream As New System.IO.MemoryStream(bytePicData)
            PictureBox1.Image = Image.FromStream(PicMemStream)
        End If
        olecon.Close()
        guarda.Close()

    End Sub

    

End Class</>
  


Caio Master

#479023 - 10/01/2018 18:13:38

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Não é de costume guardar imagens no banco de dados, pode ocasionar lentidão.
Coloque as imagens em uma pasta e no banco quarda somente o caminho e nome da imagem como string. Ex.:"/Caminho/Imagem.png"







#479025 - 10/01/2018 20:18:44

CAIOG
SAO BERNARDO DO CAMPO
Cadast. em:Janeiro/2018


Mas como eu vou mostrar a foto arquivada , se acaso está guardada no banco de dados ou na pasta no picture box??
JCM0867

Caio Master

 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário