Forum Visual Basic - JcmSoft

Forum | Novo Topico | Responder

aluizs colocou o seguinte comentário em 3/11/2016 12:55:44 :         

Assunto : Recuperando mais rapidamente imagem do banco de dados MYSQL
Mensagem : Olá,



Uso o vs 2012 e uso o código abaixo para recuperar as imagens do bando de dados e exibir em um controle.

Entretanto os o sistema ficou muito lento para recuperar as imagens.

Gostaria de saber se há algum outro código que eu consiga fazer isto mais rápido.



RECUPERAR A IMAGEM - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Using conx As MySqlConnection = connectMsql()



sql = "select * from imagens where idpaciente like '" & paccod & "' order by id_cod desc"



Try

Dim cmd As MySqlCommand = New MySqlCommand(sql, conx)

Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)

Dim dt As DataTable = New DataTable

da.Fill(dt)



If dt.Rows.Count > 0 Then

xcontar = dt.Rows.Count - 1

Dim bits As Byte() = CType(dt.Rows(0).Item("foto"), Byte())

Dim memorybits As New MemoryStream(bits, True)

memorybits.Write(bits, 0, bits.Length)

Dim bitmap As New Bitmap(memorybits)



PictureBox1.Image = bitmap.FromStream(memorybits)

PictureBox1.Tag = dt.Rows(0).Item("id_cod")

ToolTip1.SetToolTip(PictureBox1, dt.Rows(0).Item("descricao"))

Else

xcontar = 0

End If



Catch ex As Exception

MsgBox(ex.Message)

setmousefim()

Finally

End Try

End Using





SALVAR A IMAGEM - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Dim con As MySqlConnection = New MySqlConnection(sql2)

Dim cmd As MySqlCommand

Dim fs As FileStream

Dim br As BinaryReader



Try

If TextBox1.Text.Length > 0 Then

Dim NomeArquivoFoto As String = nomeArquivoImagem

Dim DadosImagem() As Byte





Dim newdate = Mid(MaskedTextBox1.Text, 7, 4) & "-" & Mid(MaskedTextBox1.Text, 4, 2) & "-" & Mid(MaskedTextBox1.Text, 1, 2)





fs = New FileStream(NomeArquivoFoto, FileMode.Open, FileAccess.Read)

br = New BinaryReader(fs)

DadosImagem = br.ReadBytes(CType(fs.Length, Integer))

br.Close()

fs.Close()



'Dim CmdSql As String = "INSERT INTO alunos(nome, email, imagem) VALUES(@Nome, @Email, @Imagem)"

sql = "INSERT INTO imagens (idpaciente, foto, datainsercao, descricao) VALUES (@idpaciente, @foto, @datainsercao, @descricao)"



cmd = New MySqlCommand(sql, con)



cmd.Parameters.Add("@idpaciente", MySqlDbType.VarChar, 11)

cmd.Parameters.Add("@foto", MySqlDbType.Blob)

cmd.Parameters.Add("@datainsercao", MySqlDbType.Date)

cmd.Parameters.Add("@descricao", MySqlDbType.VarChar, 255)





cmd.Parameters("@idpaciente").Value = TextBox1.Text

cmd.Parameters("@foto").Value = DadosImagem

cmd.Parameters("@datainsercao").Value = newdate

cmd.Parameters("@descricao").Value = TextBox3.Text



con.Open()



Dim linhasAfetadas As Integer = cmd.ExecuteNonQuery()

If (linhasAfetadas > 0) Then

MessageBox.Show("A imagem foi salva com sucesso !", "Salvar Imagem", MessageBoxButtons.OK, MessageBoxIcon.Information)

frmconsulta.callfoto()

End If

Else

MessageBox.Show("Dados incompletos !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)

End If

Catch ex As Exception

MsgBox(ex.ToString())

Finally

If con.State = ConnectionState.Open Then

con.Close()

End If

End Try



Obrigado.


Recuperando mais rapidamente imagem do banco de dados MYSQL por aluizs em 3/11/2016 12:55:44

© 2000-2001 - Forum Visual Basic - Todos os direitos Reservados - (AspBox) Moderador: José Carlos Macoratti