SALVAR IMAGENS NO BD
Pessoal,
fiz um programinha bem simples pra registro de receitas de artesanatos para uma instituição aqui.
Porém, elas querem fazer upload da foto de cada registro, num BD access.
Encaminho o código, pra alguém poder me ajudar, pois registro tudo certinho, apenas a foto que não consigo anexar.
Obrigado.
Public Class Form1
Private Sub AtabelaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.BdartDataSet)
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
[ô]TODO: This line of code loads data into the [ô]BdartDataSet1.atabela[ô] table. You can move, or remove it, as needed.
Me.AtabelaTableAdapter.Fill(Me.BdartDataSet.atabela)
End Sub
Private Sub btnnovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnovo.Click
Me.AtabelaBindingSource.AddNew()
End Sub
Private Sub btnsalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalvar.Click
Try
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.AtabelaTableAdapter.Update(Me.BdartDataSet.atabela)
MessageBox.Show([Ô]Arquivo atualizado com Sucesso![Ô], [Ô]Atualização do Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro ao gravar este arquivo. Tente novamente![Ô], [Ô]Atualização do Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub btncancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancelar.Click
Dim iResponse As Integer
[ô]sempre confirmar o cancelamento de um registro pois ela não tem retorno’
iResponse = MessageBox.Show([Ô]Confirma o cancelamento do registro ?[Ô], [Ô]Confirma Cancelamento[Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If iResponse = vbYes Then
Me.AtabelaBindingSource.CancelEdit()
End If
End Sub
Private Sub btexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btexcluir.Click
Dim iResponse As Integer
[ô]sempre confirmar a exclusao de um registro pois ela não tem retorno
iResponse = MessageBox.Show([Ô]Confirma o Exclusão do registro ?[Ô], [Ô]Confirma Exclusão[Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If iResponse = vbYes Then
Me.AtabelaBindingSource.RemoveAt(Me.AtabelaBindingSource.Position)
End If
End Sub
Private Sub btninseririmg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btninseririmg.Click
Me.OpenFileDialog1.ShowDialog()
End Sub
Private Sub ImportImage(ByVal filename As String)
Try
If Me.AtabelaBindingSource.Current IsNot Nothing Then
Dim rowView As DataRowView = CType(Me.AtabelaBindingSource.Current, DataRowView)
Dim FuncRow As bdartDataSet.atabelaRow = CType(rowView.Row, bdartDataSet.atabelaRow)
FuncRow.foto = My.Computer.FileSystem.ReadAllBytes(filename)
End If
Catch ex As Exception
MsgBox(String.Format([Ô]Problemas ao carregar imagem.[Ô], ex.Message))
My.Application.Log.WriteException(ex)
End Try
End Sub
Private Sub AtabelaBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.BdartDataSet)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMovePreviousItem.Click
End Sub
Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub AtabelaBindingNavigator_RefreshItems(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtabelaBindingNavigator.RefreshItems
End Sub
Private Sub btsair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btsair.Click
Close()
End Sub
Private Sub AcodigoTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AcodigoTextBox.TextChanged
End Sub
Private Sub FotoPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub FotoPictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
End Sub
End Class
fiz um programinha bem simples pra registro de receitas de artesanatos para uma instituição aqui.
Porém, elas querem fazer upload da foto de cada registro, num BD access.
Encaminho o código, pra alguém poder me ajudar, pois registro tudo certinho, apenas a foto que não consigo anexar.
Obrigado.
Public Class Form1
Private Sub AtabelaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.BdartDataSet)
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
[ô]TODO: This line of code loads data into the [ô]BdartDataSet1.atabela[ô] table. You can move, or remove it, as needed.
Me.AtabelaTableAdapter.Fill(Me.BdartDataSet.atabela)
End Sub
Private Sub btnnovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnovo.Click
Me.AtabelaBindingSource.AddNew()
End Sub
Private Sub btnsalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalvar.Click
Try
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.AtabelaTableAdapter.Update(Me.BdartDataSet.atabela)
MessageBox.Show([Ô]Arquivo atualizado com Sucesso![Ô], [Ô]Atualização do Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro ao gravar este arquivo. Tente novamente![Ô], [Ô]Atualização do Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub btncancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancelar.Click
Dim iResponse As Integer
[ô]sempre confirmar o cancelamento de um registro pois ela não tem retorno’
iResponse = MessageBox.Show([Ô]Confirma o cancelamento do registro ?[Ô], [Ô]Confirma Cancelamento[Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If iResponse = vbYes Then
Me.AtabelaBindingSource.CancelEdit()
End If
End Sub
Private Sub btexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btexcluir.Click
Dim iResponse As Integer
[ô]sempre confirmar a exclusao de um registro pois ela não tem retorno
iResponse = MessageBox.Show([Ô]Confirma o Exclusão do registro ?[Ô], [Ô]Confirma Exclusão[Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If iResponse = vbYes Then
Me.AtabelaBindingSource.RemoveAt(Me.AtabelaBindingSource.Position)
End If
End Sub
Private Sub btninseririmg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btninseririmg.Click
Me.OpenFileDialog1.ShowDialog()
End Sub
Private Sub ImportImage(ByVal filename As String)
Try
If Me.AtabelaBindingSource.Current IsNot Nothing Then
Dim rowView As DataRowView = CType(Me.AtabelaBindingSource.Current, DataRowView)
Dim FuncRow As bdartDataSet.atabelaRow = CType(rowView.Row, bdartDataSet.atabelaRow)
FuncRow.foto = My.Computer.FileSystem.ReadAllBytes(filename)
End If
Catch ex As Exception
MsgBox(String.Format([Ô]Problemas ao carregar imagem.[Ô], ex.Message))
My.Application.Log.WriteException(ex)
End Try
End Sub
Private Sub AtabelaBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.AtabelaBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.BdartDataSet)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMovePreviousItem.Click
End Sub
Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub AtabelaBindingNavigator_RefreshItems(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtabelaBindingNavigator.RefreshItems
End Sub
Private Sub btsair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btsair.Click
Close()
End Sub
Private Sub AcodigoTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AcodigoTextBox.TextChanged
End Sub
Private Sub FotoPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub FotoPictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
End Sub
End Class
Leia este artigo pode te ajudar.
http://www.macoratti.net/vbn_img.htm
http://www.macoratti.net/vbn_img.htm
Citação::
Leia este artigo pode te ajudar.
http://www.macoratti.net/vbn_img.htm
Amigão, obrigado pela dica !!
Mas este ainda não me ajudou...efetuei os procedimentso aqui pra teste inserindo
Imports System.IO
Imports System.Data.OleDb
Mas ainda assim não aparece a imagem carregada e também não salva no BD
Segue o exemplo no link para você estudar http://uploaddearquivos.com.br/download/Exemplo.rar
Veja se este exemplo te ajuda. Pra mim resolveu.
Pessoal,
achei muito mais simples estes exemplos repassados por vocês.
Agradeço mesmo.
A minha única dúvida, é que, neste exemplo que eu mandei, eu não estava usando SQL nos comandos e ainda não entendi o porque que não funcionou.
Se alguém quiser dar uma olhada, fiz upload do arquivo aqui: http://uploaddearquivos.com.br/download/artesanatos.rar
Muito obrigado !
achei muito mais simples estes exemplos repassados por vocês.
Agradeço mesmo.
A minha única dúvida, é que, neste exemplo que eu mandei, eu não estava usando SQL nos comandos e ainda não entendi o porque que não funcionou.
Se alguém quiser dar uma olhada, fiz upload do arquivo aqui: http://uploaddearquivos.com.br/download/artesanatos.rar
Muito obrigado !
Não é recomentado inserir imagens no db, principalmente se for access, porque as imagens ocupam muito espaço e futuramente pode de dar dor de cabeça, inclusive corrompendo o db.
Recomenda-se manter as imagens em arquivos e quardar no db o caminho e nome da imagem, assim quando você for editar o registro, poderá buscar no local armazenado.
Recomenda-se manter as imagens em arquivos e quardar no db o caminho e nome da imagem, assim quando você for editar o registro, poderá buscar no local armazenado.
Então amigo...
mas este era só um programinha pra esposa e irmãs, só pra aposentarem a velha agenda...gostaria de guardar as imagens no BD mesmo pra facilitar pra elas. Tanto que o programa ficou o mais enxuto possÃvel...
Se alguém conseguir me ajudar ainda neste escopo que mandei, agradeço.
Abraços
mas este era só um programinha pra esposa e irmãs, só pra aposentarem a velha agenda...gostaria de guardar as imagens no BD mesmo pra facilitar pra elas. Tanto que o programa ficou o mais enxuto possÃvel...
Se alguém conseguir me ajudar ainda neste escopo que mandei, agradeço.
Abraços
Cara, mesmo sendo um programa simples para seus parentes pode dar problemas do mesmo jeito.
Crie uma pasta, tipo FOTOS, quando for inserir uma foto é só jogar a foto nessa pasta e gravar o caminho:
Recordset!CAMPO_FOTO = [Ô]C:\fotos
ome_da_foto.jpg[Ô]
Crie uma pasta, tipo FOTOS, quando for inserir uma foto é só jogar a foto nessa pasta e gravar o caminho:
Recordset!CAMPO_FOTO = [Ô]C:\fotos
ome_da_foto.jpg[Ô]
Tópico encerrado , respostas não são mais permitidas