Jump to content
Caio Guimarães

Pesquisar Imagens pelo banco de dados MySQL no VB.Net

Recommended Posts

Caio Guimarães

Boa Noite !

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

<>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</>

 

ALGUÉM PODE ME AJUDAR?

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

Edited by Caio Guimarães
Formatação do código

Share this post


Link to post
Share on other sites
M6

Antes de mais, a base de dados não está armazenada no PHP Admin, isso é uma interface gráfica para explorar as bases de dados MySQL e DBMaria.
Quanto ao teu problema, tens de ler o BLOB como um array de bytes e depois interpretá-lo como uma imagem que, essa sim, pode ser carregada para a picture box.

Será algo deste tipo:

byte[] byteBLOBData =(byte[])guarda["foto"];

using (MemoryStream stream = new MemoryStream(byteBLOBData))
{
	using (Image temp = Image.FromStream(stream))
	{
		PictureBox1.Image = new Bitmap(temp);
    }
}

 


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães

 

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

        pesquisar(comando)

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

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


        guarda.Close()
        olecon.Close()

    End Sub

Então @M6 eu fiz isso na linguagem VB ,mas continua o mesmo erro. O problema deve ser que não estou conseguindo pesquisar o formato LONG BLOB (TIPO CADASTRADO PARA FOTO)  gravado da tabela "aluno" e coluna "foto" para filtrar na PICTUREBOX . Consigo normalmente incluir,alterar e excluir a foto ,agora pesquisar qualquer foto com o COD_RM (CÓDIGO DO ALUNO-CHAVE PRIMÁRIA) não 

foto- tipo: longblob,null. Já inclui foto tanto pelo VB E pelo Vertrigo,mas na hora de pesquisar da erro de "operação aritmética com estouro" ou quando eu altero algum dado do código o erro é "não é possível localizar nenhum dado da linha ou coluna".

objeto: Ao digitar o cod_rm na textbox e clicar no botão pesquisar apareceria a imagem cadastrada.

Share this post


Link to post
Share on other sites
M6

Isso parece ser pelo facto de estares a passar um valor que não é inteiro ou é um inteiro muito grande.
Coloca um breakpoint e vê a query que está a ser executada, em especial verifica o valor que vem de "txtra.Text" (devias converter para inteiro para garantir que levas apenas um inteiro.

Se isto não funcionar, coloca aqui a linha que dá erro e o stack trace do erro.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães

Dim byteblobData() As Byte = guarda.Item("foto")  '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(bytePicData2)
            PictureBox1.Image = New Bitmap(PicMemStream)
            PictureBox1.Image = Image.FromStream(PicMemStream) 'não sei se está certo para converter a imagem gravada no BD para a picturebox.

'como esta sendo feito para gravar a imagem no banco   

Private nomef As String

 Dim fsfoto As FileStream
        fsfoto = New FileStream(nomef, FileMode.Open, FileAccess.Read)

        Dim fifoto As FileInfo
        fifoto = New FileInfo(nomef)

        Dim Temp As Long
        Temp = fifoto.Length

        Dim Lung As Long
        Lung = Convert.ToInt32(Temp)

        Dim picture(Lung) As Byte

        fsfoto.Read(picture, 0, Lung)
        fsfoto.Close()

        Dim Sql = "Update aluno set foto=? where cod_rm=" + TxtRm_Ca.Text
        Dim comando2 As New OdbcCommand(Sql, olecon)
        comando2.Parameters.Add("@foto", OdbcType.Image, Temp).Value = picture
        olecon.Open()
        comando2.ExecuteNonQuery()
        olecon.Close()

Apesar que tanto inserindo pelo programa ou pelo vertrigo (mysql) o erro dá o mesmo. O ERRO PODE SER OU QUE NÃO ESTEJA FAZENDO O CONVERSÃO DA IMAGEM OU O SISTEMA NÃO ESTÁ CONSEGUINDO LOCALIZAR  A COLUNA "FOTO" DA TABELA "ALUNO" PELO: guarda.item(2) ou guarda.item("foto")

Não esta mais ocorrendo o erro mo txtra.text. @M6

Share this post


Link to post
Share on other sites
M6

Quando dizes pelo Vertrigo referes-te a usares o PHP MyAdmin, certo?
Se dá o mesmo erro, a questão poderá ser o tipo de dados do campo que poderá não ser o correto (embora já tenhas referido que é LONGBLOB).


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães

sim no phpadmin. O caso que o formato BLOB é o único aceito no caso de salvar imagem. tem tinyblob,blob,mediuemblob e longblob. já tentei qualquer outro formato no campo foto ,mas os unicos aceitaveis são os do BLOB. @M6

Share this post


Link to post
Share on other sites
M6

Esses são variantes do BLOB, basicamente variam no tamanho.

Podes colocar o DDL da tabela aluno aqui por favor?

Já agora, colocando o breakponint nessa linha, o que te retorna o cursor?


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães
Imports System.IO
Imports System.Data.Odbc

Public Class FrmCadastro_Alunos

    Private formpag As Integer
    Private sexo As String
    Private curso As Integer
    Private perguntasec As Integer
    Private periodo As Integer
    Private nomef As String

    Private Sub BtnCadastrar_Click(sender As Object, e As EventArgs) Handles BtnCadastrar.Click

        'CURSOS
        If CboCurso_Ca.Text = "Administração" Then
            curso = "1"
        ElseIf CboCurso_Ca.Text = "Automoção Industrial" Then
            curso = "2
        ElseIf CboCurso_Ca.Text = "Contabilidade" Then
            curso = "3"
        ElseIf CboCurso_Ca.Text = "Eletroeletrônica" Then
            curso = "4"
        ElseIf CboCurso_Ca.Text = "Eletrônica" Then
            curso = "5"
        ElseIf CboCurso_Ca.Text = "Informática" Then
            curso = "6"
        ElseIf CboCurso_Ca.Text = "Informática para Internet" Then
            curso = "7"
        ElseIf CboCurso_Ca.Text = "Logística" Then
            curso = "8"
        ElseIf CboCurso_Ca.Text = "Mecatrônica" Then
            curso = "9"
        ElseIf CboCurso_Ca.Text = "Secretariado" Then
            curso = "10"
        ElseIf CboCurso_Ca.Text = "Química" Then
            curso = "11"
        End If


        'SEXO
        If RdbMasc.Checked = True Then
            sexo = "M"
        ElseIf RdbFem.Checked = True Then
            sexo = "F"
        End If

        'Forma de Pagamento
        If RdbCartão_Ca.Checked = True Then
            formpag = "1"
        ElseIf RdbCheque_Ca.Checked = True Then
            formpag = "2"
        ElseIf RdbBoleto_Ca.Checked = True Then
            formpag = "3"
        End If

        'PERGUNTA SECRETA
        If CboPergunta_Ca.Text = "Qual o primeiro nome do seu pai?" Then
            perguntasec = "1"
        ElseIf CboPergunta_Ca.Text = "Qual o estado em que você nasceu?" Then
            perguntasec = "2"
        ElseIf CboPergunta_Ca.Text = "Qual o nome do seu animal de estimação?" Then
            perguntasec = "3"
        End If

        'Período
        If cboperiodo_ca.Text = "Manhã" Then
            periodo = "1"
        ElseIf cboperiodo_ca.Text = "Tarde" Then
            periodo = "2"
        ElseIf cboperiodo_ca.Text = "Noite" Then
            periodo = "3"
        End If


        Dim comando As String
        comando = ""
        comando = comando + " Insert into aluno "
        comando = comando + "(nom_aluno,cod_rm,foto,nom_sexo,data_nascimento,nom_responsavel,cod_modulo,cod_curso,"
        comando = comando + "nom_endereco,cod_numero,nom_bairro,nom_cidade,nom_estado,cod_telres,cod_telcel,"
        comando = comando + "login,senha,perguntasec,nom_respostasec,formpag,cod_diapag,cod_rg,cod_periodo)"
        comando = comando + " values('"
        comando = comando + TxtNome_Ca.Text + "'," + TxtRm_Ca.Text + "," + "0" + ",'" + sexo.ToString() + "','" + MskNasc_Ca.Text + "','" + TxtResponsavel_Ca.Text + "',"
        comando = comando + txtmodulo.Text + ", '" + curso.ToString() + "','" + TxtEndereco_Ca.Text + "'," + TxtNumero_Ca.Text + ",'" + TxtBairro_Ca.Text + "','"
        comando = comando + CboCidade_Ca.Text + "','" + CboEstado_Ca.Text + "','" + MskTelefone_Ca.Text + "','" + MskCelular_Ca.Text + "', '" + TxtLogin_Ca.Text + "','"
        comando = comando + TxtConfirmarSenha_Ca.Text + "','" + perguntasec.ToString() + "','" + TxtResposta_Ca.Text + "','" + formpag.ToString() + "'," + MskDia.Text + "," + MskRg_Ca.Text + ",'" + periodo.ToString() + "') "
        executarcomando(comando, "Inclusão feita com sucesso! ")

        Dim fsfoto As FileStream
        fsfoto = New FileStream(nomef, FileMode.Open, FileAccess.Read)

        Dim fifoto As FileInfo
        fifoto = New FileInfo(nomef)

        Dim Temp As Long
        Temp = fifoto.Length

        Dim Lung As Long
        Lung = Convert.ToInt32(Temp)

        Dim picture(Lung) As Byte

        fsfoto.Read(picture, 0, Lung)
        fsfoto.Close()

        Dim Sql = "Update aluno set foto=? where cod_rm=" + TxtRm_Ca.Text
        Dim comando2 As New OdbcCommand(Sql, olecon)
        comando2.Parameters.Add("@foto", OdbcType.Image, Temp).Value = picture
        olecon.Open()
        comando2.ExecuteNonQuery()
        olecon.Close()

    End Sub

    Private Sub BtnAlterar_Click(sender As Object, e As EventArgs) Handles BtnAlterar.Click

        'CURSOS
        If CboCurso_Ca.Text = "Administração" Then
            curso = "1"
        ElseIf CboCurso_Ca.Text = "Automoção Industrial" Then
            curso = "2"
        ElseIf CboCurso_Ca.Text = "Contabilidade" Then
            curso = "3"
        ElseIf CboCurso_Ca.Text = "Eletroeletrônica" Then
            curso = "4"
        ElseIf CboCurso_Ca.Text = "Eletrônica" Then
            curso = "5"
        ElseIf CboCurso_Ca.Text = "Informática" Then
            curso = "6"
        ElseIf CboCurso_Ca.Text = "Informática para Internet" Then
            curso = "7"
        ElseIf CboCurso_Ca.Text = "Logística" Then
            curso = "8"
        ElseIf CboCurso_Ca.Text = "Mecatrônica" Then
            curso = "9"
        ElseIf CboCurso_Ca.Text = "Secretariado" Then
            curso = "10"
        ElseIf CboCurso_Ca.Text = "Química" Then
            curso = "11"
        End If


        'SEXO
        If RdbMasc.Checked = True Then
            sexo = "M"
        ElseIf RdbFem.Checked = True Then
            sexo = "F"
        End If

        'Forma de Pagamento
        If RdbCartão_Ca.Checked = True Then
            formpag = "1"
        ElseIf RdbCheque_Ca.Checked = True Then
            formpag = "2"
        ElseIf RdbBoleto_Ca.Checked = True Then
            formpag = "3"
        End If

        'PERGUNTA SECRETA
        If CboPergunta_Ca.Text = "Qual o primeiro nome do seu pai?" Then
            perguntasec = "1"
        ElseIf CboPergunta_Ca.Text = "Qual o estado em que você nasceu?" Then
            perguntasec = "2"
        ElseIf CboPergunta_Ca.Text = "Qual o nome do seu animal de estimação?" Then
            perguntasec = "3"
        End If

        'Período
        If cboperiodo_ca.Text = "Manhã" Then
            periodo = "1"
        ElseIf cboperiodo_ca.Text = "Tarde" Then
            periodo = "2"
        ElseIf cboperiodo_ca.Text = "Noite" Then
            periodo = "3"
        End If

        Dim comando As String
        comando = ""
        comando = comando + "Update aluno set nom_aluno = '" + TxtNome_Ca.Text + "',foto =" + "0" + ",nom_responsavel = '" + TxtResponsavel_Ca.Text + "',cod_modulo = " + txtmodulo.Text + ",cod_curso = '" + curso.ToString() + "',nom_endereco = '" + TxtEndereco_Ca.Text + "'"
        comando = comando + ",cod_numero = " + TxtNumero_Ca.Text + ",nom_bairro = '" + TxtBairro_Ca.Text + "',nom_cidade = '" + CboCidade_Ca.Text + "',nom_estado = '" + CboEstado_Ca.Text + "',cod_telres = '" + MskTelefone_Ca.Text + "'"
        comando = comando + ",cod_telcel = '" + MskCelular_Ca.Text + "',login = '" + TxtLogin_Ca.Text + "',senha = '" + TxtConfirmarSenha_Ca.Text + "',perguntasec = '" + perguntasec.ToString() + "',nom_respostasec = '" + TxtResposta_Ca.Text + "',formpag = '" + formpag.ToString() + "'"
        comando = comando + ",cod_diapag = " + MskDia.Text + ",cod_periodo = '" + periodo.ToString() + "' where cod_rm = " + TxtRm_Ca.Text + ""
        executarcomando(comando, "Alteração feita com sucesso! ")

        If (nomef <> "") Then

            Dim fsfoto As FileStream
            fsfoto = New FileStream(nomef, FileMode.Open, FileAccess.Read)

            Dim fifoto As FileInfo
            fifoto = New FileInfo(nomef)

            Dim Temp As Long
            Temp = fifoto.Length

            Dim Lung As Long
            Lung = Convert.ToInt32(Temp)

            Dim picture(Lung) As Byte

            fsfoto.Read(picture, 0, Lung)
            fsfoto.Close()

            Dim Sql = "Update aluno set foto=? where cod_rm=" + TxtRm_Ca.Text
            Dim comando2 As New OdbcCommand(Sql, olecon)
            comando2.Parameters.Add("@foto", OdbcType.Image, Temp).Value = picture
            olecon.Open()
            comando2.ExecuteNonQuery()
            olecon.Close()
            nomef = ""

        End If

    End Sub

    Private Sub BtnExcluir_Click(sender As Object, e As EventArgs) Handles BtnExcluir.Click

        Dim comandoex As String
        Dim comando As String

        Dim terminar As Integer

        terminar = MsgBox("Deseja executar a exclusão?", vbYesNo)

        If terminar = vbYes Then

            comando = "Select * from aluno where cod_rm=" + TxtRm_Ca.Text
            pesquisar(comando)

            If guarda.Read Then
                olecon.Close()
                guarda.Close()
                comandoex = ""
                comandoex = "Delete from aluno where cod_rm=" + TxtRm_Ca.Text

                executarcomando(comandoex, "exclusão feita com sucesso! ")

                TxtRm_Ca.Clear()
                TxtBairro_Ca.Clear()
                TxtConfirmarSenha_Ca.Clear()
                TxtEndereco_Ca.Clear()
                TxtLogin_Ca.Clear()
                TxtNome_Ca.Clear()
                TxtNumero_Ca.Clear()
                TxtResponsavel_Ca.Clear()
                TxtResposta_Ca.Clear()
                TxtRm_Ca.Clear()
                TxtSenha_Ca.Clear()
                txtmodulo.Clear()
                RdbBoleto_Ca.Enabled = True
                RdbCartão_Ca.Enabled = True
                RdbCheque_Ca.Enabled = True
                RdbFem.Enabled = True
                RdbMasc.Enabled = True
                CboCidade_Ca.Text = ""
                CboCurso_Ca.Text = ""
                CboEstado_Ca.Text = ""
                CboPergunta_Ca.Text = ""
                cboperiodo_ca.Text = ""
                MskCelular_Ca.Clear()
                MskDia.Clear()
                MskNasc_Ca.Clear()
                MskRg_Ca.Clear()
                MskTelefone_Ca.Clear()
                PictureBox1.Image() = Nothing


                TxtNome_Ca.Focus()
            Else

                MessageBox.Show("Rm não localizado")
                guarda.Close()
                olecon.Close()

                If terminar = vbNo Then
                    MsgBox("Os seus dados continuarão arquivados")
                    olecon.Close()
                    guarda.Close()

                End If
            End If
        End If


    End Sub

    Private Sub BtnHome_Click(sender As Object, e As EventArgs) Handles BtnHome.Click

        Dim formfuncionario As FrmFuncionários = New FrmFuncionários
        formfuncionario.Show()
        Me.Hide()

    End Sub

    Private Sub FrmCadastro_Aluno_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        cboperiodo_ca.Items.Clear()
        cboperiodo_ca.Items.Add("Manhã")
        cboperiodo_ca.Items.Add("Tarde")
        cboperiodo_ca.Items.Add("Noite")


        CboCurso_Ca.Items.Clear()
        CboCurso_Ca.Items.Add("Administração")
        CboCurso_Ca.Items.Add("Automoção Industrial")
        CboCurso_Ca.Items.Add("Contabilidade")
        CboCurso_Ca.Items.Add("Eletroeletrônica")
        CboCurso_Ca.Items.Add("Eletrônica")
        CboCurso_Ca.Items.Add("Informática")
        CboCurso_Ca.Items.Add("Informática para Internet")
        CboCurso_Ca.Items.Add("Logistica")
        CboCurso_Ca.Items.Add("Mecatrônica")
        CboCurso_Ca.Items.Add("Secretariado")
        CboCurso_Ca.Items.Add("Química")

        CboPergunta_Ca.Items.Clear()
        CboPergunta_Ca.Items.Add("Qual o primeiro nome do seu pai?")
        CboPergunta_Ca.Items.Add("Qual o estado em que você nasceu?")
        CboPergunta_Ca.Items.Add("Qual o nome do seu animal de estimação?")


        CboEstado_Ca.Items.Clear()
        CboEstado_Ca.Items.Add("AC")
        CboEstado_Ca.Items.Add("AL")
        CboEstado_Ca.Items.Add("AM")
        CboEstado_Ca.Items.Add("AP")
        CboEstado_Ca.Items.Add("BA")
        CboEstado_Ca.Items.Add("CE")
        CboEstado_Ca.Items.Add("DF")
        CboEstado_Ca.Items.Add("ES")
        CboEstado_Ca.Items.Add("GO")
        CboEstado_Ca.Items.Add("MA")
        CboEstado_Ca.Items.Add("MG")
        CboEstado_Ca.Items.Add("MS")
        CboEstado_Ca.Items.Add("MT")
        CboEstado_Ca.Items.Add("PA")
        CboEstado_Ca.Items.Add("PB")
        CboEstado_Ca.Items.Add("PE")
        CboEstado_Ca.Items.Add("PI")
        CboEstado_Ca.Items.Add("PR")
        CboEstado_Ca.Items.Add("RJ")
        CboEstado_Ca.Items.Add("RN")
        CboEstado_Ca.Items.Add("RO")
        CboEstado_Ca.Items.Add("RR")
        CboEstado_Ca.Items.Add("RS")
        CboEstado_Ca.Items.Add("SC")
        CboEstado_Ca.Items.Add("SE")
        CboEstado_Ca.Items.Add("SP")
        CboEstado_Ca.Items.Add("TO")


    End Sub

    Private Sub TxtConfirmarSenha_Ca_LostFocus(sender As Object, e As EventArgs) Handles TxtConfirmarSenha_Ca.LostFocus
        If Not TxtSenha_Ca.Text = TxtConfirmarSenha_Ca.Text Then
            MsgBox("Senhas não coincidem!")
            TxtSenha_Ca.Clear()
            TxtConfirmarSenha_Ca.Clear()
        End If
    End Sub

    Private Sub TxtLogin_Ca_LostFocus(sender As Object, e As EventArgs) Handles TxtLogin_Ca.LostFocus
        Dim comando = " Select * from aluno where login = '" + TxtLogin_Ca.Text + "'"
        pesquisar(comando)
        If guarda.Read Then
            MsgBox("Login já existente")
            TxtLogin_Ca.Clear()
        End If
        olecon.Close()
        guarda.Close()
    End Sub

    Private Sub CboEstado_Ca_LostFocus(sender As Object, e As EventArgs) Handles CboEstado_Ca.LostFocus

        Dim comando As String
        CboCidade_Ca.Items.Clear()
        CboCidade_Ca.Text = ""

        If (CboEstado_Ca.Text = "AC") Then
            comando = "select * from cidade where estado=1"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "AL") Then
            comando = "select * from cidade where estado=2"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "AM") Then
            comando = "select * from cidade where estado=3"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "AP") Then
            comando = "select * from cidade where estado=4"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "BA") Then
            comando = "select * from cidade where estado=5"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "CE") Then
            comando = "select * from cidade where estado=6"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()
        ElseIf (CboEstado_Ca.Text = "DF") Then
            comando = "select * from cidade where estado=7"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "ES") Then
            comando = "select * from cidade where estado=8"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "GO") Then
            comando = "select * from cidade where estado=9"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "MA") Then
            comando = "select * from cidade where estado=10"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "MG") Then
            comando = "select * from cidade where estado=11"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "MS") Then
            comando = "select * from cidade where estado=12"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "MT") Then
            comando = "select * from cidade where estado=13"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "PA") Then
            comando = "select * from cidade where estado=14"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "PB") Then
            comando = "select * from cidade where estado=15"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "PE") Then
            comando = "select * from cidade where estado=16"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()
        ElseIf (CboEstado_Ca.Text = "PI") Then
            comando = "select * from cidade where estado=17"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "PR") Then
            comando = "select * from cidade where estado=18"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "RJ") Then
            comando = "select * from cidade where estado=19"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "RN") Then
            comando = "select * from cidade where estado=20"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "RO") Then
            comando = "select * from cidade where estado=21"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "RR") Then
            comando = "select * from cidade where estado=22"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()


        ElseIf (CboEstado_Ca.Text = "RS") Then
            comando = "select * from cidade where estado=23"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "SC") Then
            comando = "select * from cidade where estado=24"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "SE") Then
            comando = "select * from cidade where estado=25"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()


        ElseIf (CboEstado_Ca.Text = "SP") Then
            comando = "select * from cidade where estado=26"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()

        ElseIf (CboEstado_Ca.Text = "TO") Then
            comando = "select * from cidade where estado=27"
            pesquisar(comando)
            While guarda.Read()
                CboCidade_Ca.Items.Add(guarda(1).ToString())

            End While
            guarda.Close()
            olecon.Close()


        End If
    End Sub

    Private Sub RdbCartão_Ca_CheckedChanged(sender As Object, e As EventArgs) Handles RdbCartão_Ca.CheckedChanged

        If RdbCartão_Ca.Checked = True Then
            formpag = "1"

        End If
    End Sub

    Private Sub RdbCheque_Ca_CheckedChanged(sender As Object, e As EventArgs) Handles RdbCheque_Ca.CheckedChanged

        If RdbCheque_Ca.Checked = True Then
            formpag = "2"
        End If
    End Sub

    Private Sub RdbBoleto_Ca_CheckedChanged(sender As Object, e As EventArgs) Handles RdbBoleto_Ca.CheckedChanged

        If RdbBoleto_Ca.Checked = True Then
            formpag = "3"

        End If
    End Sub

    Private Sub RdbMasc_CheckedChanged(sender As Object, e As EventArgs) Handles RdbMasc.CheckedChanged

        If RdbMasc.Checked = True Then
            sexo = "M"

        End If

    End Sub

    Private Sub RdbFem_CheckedChanged(sender As Object, e As EventArgs) Handles RdbFem.CheckedChanged

        If RdbFem.Checked = True Then
            sexo = "F"

        End If
    End Sub

    Private Sub TxtRm_Ca_LostFocus(sender As Object, e As EventArgs) Handles TxtRm_Ca.LostFocus
        Dim comando = " Select * from aluno where cod_rm = '" + TxtRm_Ca.Text + "'"
        pesquisar(comando)
        If guarda.Read Then
            MsgBox("Matricula já existente")
        End If
        olecon.Close()
        guarda.Close()
    End Sub

    Private Sub btnfoto_Click(sender As Object, e As EventArgs) Handles btnfoto.Click
        OpenFileDialog1.Filter = "Image File(*.jpg;*.bmp;*.gif)|*.jpg;*.bmp;*.gif"
        OpenFileDialog1.Title = "Selecione uma Foto"
        OpenFileDialog1.ShowDialog()

        If (OpenFileDialog1.FileName <> "") Then
            PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
            nomef = OpenFileDialog1.FileName

        End If
    End Sub
End Class

'todo o processo de cadastrar os dados do aluno (insert.update e delete)

'aluno (itens da tabala)

ColunaTipoNuloPredefinidoLigações paraComentáriosMIME

nom_alunovarchar(40)SimNULL

cod_rm (Primária)int(8)Não0

fotoblobSimNULL

nom_sexovarchar(1)SimNULL

data_nascimentovarchar(10)SimNULL

nom_responsavelvarchar(40)SimNULL

cod_moduloint(1)SimNULL

cod_cursoint(2)SimNULL

nom_enderecovarchar(50)SimNULL

cod_numeroint(4)SimNULL

nom_bairrovarchar(50)SimNULL

nom_cidadevarchar(50)SimNULL

nom_estadovarchar(2)SimNULL

cod_telresvarchar(16)SimNULL

cod_telcelvarchar(17)SimNULL

loginvarchar(20)SimNULL

senhavarchar(20)SimNULL

perguntasecint(1)SimNULL

nom_respostasecvarchar(30)SimNULL

formpagint(1)SimNULL

cod_diapagint(2)SimNULL

cod_rgint(15)SimNULL

cod_periodoint(1)Não

Índices

Nome da chaveTipoÚnicoPacoteColunaQuantidadeAgrupamento (Collation)NuloComentário

PRIMARYBTREESimNãocod_rm5ANão
 

 If guarda.Read() Then
            txtra.Text = guarda(1)
            Dim bytePicData2() As Byte
            bytePicData2 = guarda.Item(2) "LINHA DO 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(bytePicData2)
            PictureBox1.Image = New Bitmap(PicMemStream)
            PictureBox1.Image = Image.FromStream(PicMemStream)

 

Share this post


Link to post
Share on other sites
M6

Esse "System.Data.dll" é a biblioteca de MySQL para o .net? Se não é, isso pode ser o problema, essa biblioteca pode não conseguir suportar BLOBs como deve ser.

Outra hipótese é estares a ter este problema: https://support.microsoft.com/en-us/help/329658/fix-you-receive-a-system-overflowexception-error-message-when-you-call


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães

"System.Data.dll" é a biblioteca de MySQL. é sim do mysql. Eu acho estranho se fosse erro da biblioteca,pois senão teria que aparecer erro também ao inclur,deletar ou alterara dados. @M6

Share this post


Link to post
Share on other sites
Caio Guimarães

de acordo a o codigo que eu postei a imagem é gravada como formato "byte".mas no visual basic não uso um método para pegar a imagem tipo blob gravada na tabela aluno para converter para byte e ler  a imagem no picture box. Apenas o método guarda . realmente não consigo resolver este problema. Não achei nenhuma biblioteca que fosse possível ler dados.blob.

 módulo para conexão com phpadmin (mysql)
 

Imports System.Data
Imports System.IO
Imports System.Data.Odbc
Imports System.Data.SqlClient
Imports System.Drawing.Imaging
Module Module1

    Public loginx As String
    Public conexao = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=universe;uid=root;password=vertrigo;"
    Public dados As New DataSet
    Public olecon As New Odbc.OdbcConnection(conexao)
    Public guarda As System.Data.Odbc.OdbcDataReader

  
   
    Public Sub filtrar(ByVal comando As String, ByVal arq As String)
        Dim adapterx2 As New Odbc.OdbcDataAdapter(comando, olecon)
        Dim dataset2 As New DataSet(arq)

        dados.Clear()
        Try
           
            olecon.Open()
            adapterx2.Fill(dados, arq)

        Catch ex As Exception
            MessageBox.Show("Não foi possivel a Conexão")
       
        End Try
        olecon.Close()
    End Sub
    Public Sub executarcomando(ByVal comando As String, ByVal operacao As String)
        Try
            olecon.Open()
            Dim novo As New Odbc.OdbcCommand(comando, olecon)
            novo.ExecuteNonQuery()
            MessageBox.Show(operacao + "")


        Catch ex As Exception
            MessageBox.Show("Não foi possivel a Conexão ou erro de inclusão")

        End Try
        olecon.Close()
    End Sub
    Public Sub pesquisar(ByVal comando As String)
        olecon.Open()
        Dim cmdx As New System.Data.Odbc.OdbcCommand(comando, olecon)
        guarda = cmdx.ExecuteReader()

    End Sub

End Module

 

Share this post


Link to post
Share on other sites
M6

Creio que sem informação de debug não consigo ajudar mais...


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Caio Guimarães

ah sim. Eu até agora não achei um tutorial que use mysql com vb como eu fiz (armazenar o banco de dados no phpadmin usando o software vertrigo. Relamente o erro de debug de "ocorreu um estouro na operação aritmética" é chato.  Vou verificar se acho outras maneiras de contornar e solucionar este erro. já que mudando o formato no visual studio (linguagem vb) não adiantou. @M6

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.