terça-feira, 17 de outubro de 2017

Salvar e ler imagens no banco dados MySql - VB.NET

Primeiro importe;


1:  Imports MySql.Data.MySqlClient  
2:  Imports System.IO  

Agora crie as variáveis globais;


1:  Dim NomeArquivoFoto As String  


E no botão para buscar a foto;


1:  Try  
2:      Dim SEARCH As New OpenFileDialog  
3:      SEARCH.Filter = "Images | *.jpg"  
4:      If SEARCH.ShowDialog = DialogResult.OK Then  
5:        NomeArquivoFoto = SEARCH.FileName  
6:        PictureBox1.Image = Image.FromFile(SEARCH.FileName)  
7:      End If  
8:  Catch ex As Exception  
9:  End Try  

No botão salvar adicione;


1:      Dim _conexaoMySQL As String = SERVER_CONF()  
2:      Dim con As MySqlConnection = New MySqlConnection(_conexaoMySQL)  
3:      Dim cmd As MySqlCommand  
4:      Dim fs As FileStream  
5:      Dim br As BinaryReader  
6:      Try  
7:          'Convertendo a imagem em Byte  
8:          Dim arquivoImagem As String = nomeArquivoImagem  
9:          Dim DadosImagem() As Byte  
10:          fs = New FileStream(arquivoImagem, FileMode.Open, FileAccess.Read)  
11:          br = New BinaryReader(fs)  
12:          DadosImagem = br.ReadBytes(CType(fs.Length, Integer))  
13:          br.Close()  
14:        fs.Close()  
15:        Dim CmdSql As String = "INSERT INTO `BANCO DE DADOS`.`TABELA` ( `COLUNA_NOME`, `COLUNA_IDADE`, `COLUNA_IMAGEM`) VALUES (@Nome, @Idade, @Imagem);"  
16:        cmd = New MySqlCommand(CmdSql, con)  
17:        cmd.Parameters.Add("@Nome", MySqlDbType.VarChar, 100)  
18:        cmd.Parameters.Add("@Idade", MySqlDbType.Int32, 5)  
19:        cmd.Parameters.Add("@Imagem", MySqlDbType.Blob)  
20:        cmd.Parameters("@Nome").Value = txtnome.text  
21:        cmd.Parameters("@Idade").Value = txtidade.text  
22:        cmd.Parameters("@Imagem").Value = DadosImagem  
23:          con.Open()  
24:        Dim linhasAfetadas As Integer = cmd.ExecuteNonQuery()  
25:        If (linhasAfetadas > 0) Then  
26:          MessageBox.Show("A imagem foi salva com sucesso !", "Salvar Imagem", MessageBoxButtons.OK, MessageBoxIcon.Information)  
27:        Else  
28:          MessageBox.Show("Dados incompletos !", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)  
29:        End If  
30:      Catch ex As Exception  
31:        MsgBox(ex.ToString())  
32:      Finally  
33:        If con.State = ConnectionState.Open Then  
34:          con.Close()  
35:        End If  
36:      End Try  


Lembrando que, no seu banco de dados a coluna imagem tem que ser BLOB para caber a imagem!
Agora para ler a imagem, coloque no botão buscar imagem;

 

1:   Try  
2:        Dim conn As New MySqlConnection  
3:        Dim myData As New DataTable  
4:        Dim dr As MySqlDataReader  
5:        Dim SQL As String  
6:        Dim br As BinaryReader  
7:        conn = New MySqlConnection  
8:        conn.ConnectionString = "server=localhost;user id=root;password=123456;database=test"  
9:        conn.Open()  
10:        SQL = "SELECT id_CLIENTE, CLIENTE_NOME, CLIENTE_IMAGEM FROM `BANCO_DE_DADOS`.`TABELA_DO_BD`;"  
11:        Try  
12:          Dim cmd As MySqlCommand = New MySqlCommand(SQL, conn)  
13:          dr = cmd.ExecuteReader(CommandBehavior.SingleRow)  
14:          If dr.HasRows Then  
15:            dr.Read()  
16:            label1.text = dr.Item("id_CLIENTE")  
17:            label2.text = dr.Item("CLIENTE_NOME")  
18:            'Convertendo a imagem de Byte para Bitmap para exibir em uma PictureBox!  
19:            Dim imagem As Bitmap  
20:            Dim blobl As Byte() = DirectCast(dr.Item("CLIENTE_IMAGEM"), Byte())  
21:            Using ms = New MemoryStream(blobl)  
22:              imagem = New Bitmap(ms)  
23:            End Using  
24:            PictureBox1.Image = imagem  
25:          End If  
26:        Catch ex As Exception  
27:          MsgBox(ex.ToString())  
28:        Finally  
29:        End Try  
30:        conn.Close()  
31:      Catch ex As MySqlException  
32:        MsgBox(ex.ToString())  
33:      End Try  

Pronto, agora temos um codigo para salvar imagens no banco de dados e outro para ler imagens em byte e convertendo para Bitmap para exibi-las em uma PictureBox...

Abrç....

COMENTE

& Compartilhe

0 comentários:

Postar um comentário

 

Copyright © 2015 Projeto Programação

Distributed By My Blogger Themes | Designed by Templateism