aluizs 0 Denunciar post Postado Novembro 3, 2016 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. Compartilhar este post Link para o post Compartilhar em outros sites
ygor.anjos 23 Denunciar post Postado Novembro 4, 2016 Bom dia. Cara não é recomendável salvar imagens ou arquivos no banco de dados, a boa pratica é você salvar a imagem em um servidor e no banco de dados salvar o caminho que a imagem está. Compartilhar este post Link para o post Compartilhar em outros sites