quinta-feira, 6 de setembro de 2012



'Declara os imports para leitura de dados
Imports System.Data.OleDb
Imports System.IO

Public Class Form1
    Inherits System.Windows.Forms.Form

    'Declara a variavel para a conexão
    Dim conn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                                                      Replace(Application.StartupPath, "bin", "") & _
                                                      "DB.mdb;Mode=ReadWrite;Persist Security Info=False")

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Abre a estrutura de tramento de erro caso acontecer algum
        Try
            'Defini o titulo da caixa de dialogo
            Me.OpenFileDialog1.Title = "Abrir imagem"

            'Defini os tipos de imagens que poderão ser escolhidas
            Me.OpenFileDialog1.Filter = "Bmp Files(*.bmp)|*.bmp|Gif Files(*.gif)|*.gif|Jpg Files(*.jpg)|*.jpg"

            'Abre a janela para buscar a imagem
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

                'PictureBox recebe a imagem que foi selecionada
                PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)

            Else

                'Informa ao usuário que foi cancelada a operação de seleção de imagem
                MsgBox("Operação cancelada pelo usuário.", MsgBoxStyle.Exclamation, "OK")
            End If

        Catch ex As Exception

            'Informa qual o erro que aconteceu
            MsgBox(ex.Message)
        End Try

    End Sub

    'Salva as imagens
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        'Abre a estrutura de tramento de erro caso acontecer algum
        Try

            'Abre a imagem
            Dim fs As FileStream = New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)

            'Declara uma variavel que irá receber o conteúdo do textbox ( o nome da imagem )
            Dim NomeImagem As String = TextBox1.Text

            'Lê a saída em binary reader
            Dim r As BinaryReader = New BinaryReader(fs)

            'Declara um byte array para salvar o conteúdo do arquivo salvo
            Dim FileByteArray(fs.Length - 1) As Byte
            r.Read(FileByteArray, 0, CInt(fs.Length))

            'Comando SQL para salvar o nome e a imagem no banco de dados.
            Dim sql As String = "INSERT INTO Imagens (NomeImagem,Foto) VALUES (?,?)"

            'Declara a OleDbCommand Object
            Dim cmd As New System.Data.OleDb.OleDbCommand(sql, conn)

            'Add Parameter
            cmd.Parameters.Add("@NomeImagem", System.Data.OleDb.OleDbType.VarChar).Value = TextBox1.Text
            cmd.Parameters.Add("@Foto", System.Data.OleDb.OleDbType.Binary).Value = FileByteArray

            'Abre a conexão com o banco de dados.
            conn.Open()

            'Executa a query no banco de dados
            cmd.ExecuteNonQuery()

            'Informa ao usuário que a imagem foi inserida
            MsgBox("Imagem Inserida com Sucesso!", MsgBoxStyle.Exclamation, "OK")

            'Fecha a conexão com o banco de dados.
            conn.Close()

        Catch ex As Exception

            'Informa qual o erro que aconteceu
            MsgBox(ex.Message)
        End Try

    End Sub

    'Criar instância para a imagem do FileByteArray
    Private Sub DrawToScale(ByVal img As Image)

        'Converte a imagem para o tipo Bitmap
        PictureBox1.Image = New Bitmap(img)
    End Sub

    'Ler a imagem
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'Abre a estrutura de tramento de erro caso acontecer algum
        Try
            'Abre uma caixa de dialogo para informar o nome da imagem que deseja buscar
            Dim fn As String = InputBox("Informe o nome da imagem para buscar:")

            'Comando SQl para retornar a imagem que foi informada como parâmentro de busca
            Dim sql As String = "SELECT Foto FROM Imagens WHERE NomeImagem='" & fn & "'"

            'Abre a conexão com o banco de dados.
            conn.Open()

            'Realiza a conexão com o bancod e dados e depois executa o comnando SQl
            Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)

            'O campo textbox recebe o nome que foi digitado da imagem para realizar a busca
            TextBox1.Text = fn

            'Declara uma variavel do tipo Byte
            Dim b() As Byte

            'Executa o comnado para buscar a imagem
            b = cmd.ExecuteScalar()

            'Se b for maior que 0 então
            If (b.Length > 0) Then

                'Declara a variavel stream como novo fluxo de memória
                Dim stream As New MemoryStream(b, True)

                'Escreve o fluxo de memória
                stream.Write(b, 0, b.Length)

                'Imagem de exibição
                DrawToScale(New Bitmap(stream))

                'Fecha o fluxo de memória
                stream.Close()
            End If

            'Fecha a conexão com o banco de dados.
            conn.Close()

        Catch ex As Exception

            'Informa qual o erro que aconteceu
            MsgBox(ex.Message)
        End Try

    End Sub

    'Fecha a aplicação
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        'Comando encerra a aplicação
        End
    End Sub

    'Deleta Imagem
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        'Abre a estrutura de tramento de erro caso acontecer algum
        Try
            'Abre uma caixa de dialogo para informar o nome da imagem que deseja deletar
            Dim fn As String = InputBox("Informe o nome da imagem para deletar:")

            'Comando SQl para deletar a imagem que foi informada como parâmentro de exclusão
            Dim sql As String = "DELETE FROM Imagens WHERE NomeImagem='" & fn & "'"

            'Abre a conexão com o banco de dados.
            conn.Open()

            'Realiza a conexão com o bancod e dados e depois executa o comnando SQl
            Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)

            'Executa a query no banco de dados
            cmd.ExecuteNonQuery()

            'Informa ao usuário que a imagem foi deletada
            MsgBox("Imagem Deletada com Sucesso.", MsgBoxStyle.Exclamation, "OK")

            'Fecha a conexão com o banco de dados.
            conn.Close()

        Catch ex As Exception

            'Informa qual o erro que aconteceu
            MsgBox(ex.Message)
        End Try

    End Sub

End Class

Pegue o projeto neste link: http://www.mediafire.com/?md2kia3e90gg0s6

 Espero ter ajudado, tentei detalhar o máximo possível para que possam entender melhor cada funcionamento das linhas de código.

Abraços... Até a próxima.

0 comentários:

Postar um comentário