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

#480113 - 12/03/2018 15:12:12

DJROBERTOSC
BALNERARIO PICARRAS
Cadast. em:Maio/2011


Última edição em 12/03/2018 15:14:46 por DJROBERTOSC

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


Tenho um programa que cadastra discos e guarda uma foto da capa do disco, no banco de dados eu gravo na tabela somente o caminho da foto ex. "C:\Cadastro discos\fotos\roberto.jpg"
e na pasta "fotos" ficam as imagens, quando faço a pesquisa por nome do cantor (por ex.) no form da pesquisa eu coloco
Cadastro.imagem.Picture = LoadPicture(caminho)
* neste caso Cadastro é o meu form de cadastro de discos, e caminho é a variável que recebeu o local da imagem.
:)





#480117 - 12/03/2018 16:14:03

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Antes de mais nada, mude a sua concepção.
Abandone este Drive Odbc.
Coloque uma foto que gravou no seu banco para fazer um  teste e dar uma posição para você.
Quero testar aqui com um campo Longblob.



 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