Jump to content

Guardar fotos em access


Cirilo7
 Share

Recommended Posts

olá a todos. necessito da vossa ajuda.

Quero guardar fotos numa bd em access. Ja ouvi dizer que se guardar mesmo lá as fotos que fica muito pesada a bd, k o melhor era msm guardar o caminho. Ja andei a ver alguns exemplos na net, mas nao entendo nada daquilo. SOU UM NABO EM VB.

Estou a utilizar o vb 2005 e o oledbconn, será possivel dizerem-me como guardar o caminho da foto para que esta possa ser carregada e ser guardada juntamente com outros dados inseridos em textbox??

ja agora como é que faço tambem para as fotos serem vistas juntamente com os dados guardados?

Obrigado pela vossa colaboração!

Boas programações!!!!!

Link to comment
Share on other sites

Tenta assim:

 Dim arqImg As FileStream
        Dim rImg As StreamReader
        Dim strcon As String
        Dim sql As String

        OpenFileDialog1.Multiselect = False
        OpenFileDialog1.Filter = "Jpeg|*.jpg|Gif|*.gif|Jpeg|*.jpeg|Bitmap|*.bmp"
        OpenFileDialog1.RestoreDirectory = True
        OpenFileDialog1.Title = "Escolha uma imagem"

        'Abrir imagem
        OpenFileDialog1.FileName = Nothing
        OpenFileDialog1.ShowDialog()
        TextBox1.Text = OpenFileDialog1.FileName

        If Len(TextBox1.Text) <> 0 Then
            arqImg = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read, FileShare.Read)
            rImg = New StreamReader(arqImg)
        Else
            Exit Sub
        End If

        strcon = (Stand.My.Settings.ligacaoBD)
        sql = "UPDATE compras SET [FOTO]=@foto WHERE ID_COMPRA = " & idcompraText.Text & ""

        Dim conexao As New OleDbConnection(strcon)
        Dim comando As New OleDbCommand(sql, conexao)
        Try

            'declaramos um vetor de bytes para armazenar o conteúdo da imagem a ser salva
            Dim arqByteArray(arqImg.Length - 1) As Byte
            arqImg.Read(arqByteArray, 0, arqImg.Length)


            'inclui os parâmetros
            comando.Parameters.Add("@FOTO", OleDbType.Binary, arqImg.Length).Value = arqByteArray

            'abre a conexao , executa o comando e fecha a conexao
            conexao.Open()
            comando.ExecuteNonQuery()
            conexao.Close()

            MsgBox("Imagem inserida.", MsgBoxStyle.Information, "OK")
            'Pergunta se quer Inserir um registo
            Dim msg = MsgBox("Deseja voltar ao menu compras? ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Stand")
            If msg = MsgBoxResult.Yes Then
                Dim frmOpen As Form = My.Application.OpenForms("compras")
                If frmOpen IsNot Nothing Then
                    frmOpen.Dispose()
                End If
                Dim frm As New compras
                frm.Name = "compras"
                frm.MdiParent = Form1
                frm.Show()
            Else
                PictureBox1.BackColor = Color.AliceBlue
                Exit Sub
            End If

        Catch ex As Exception
            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Erro")
        End Try
Link to comment
Share on other sites

eu ja utilizo o código para carregar a foto!

so me falta é mesmo guardar o caminho.

o codigo para carregar é este:

try

            If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then

                foto.Image = Image.FromFile(dlgOpen.FileName)

                campo.Text = dlgOpen.FileName

end try

Link to comment
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
 Share

×
×
  • 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.