SALVAR IMAGENS NO BD

MATFURRIER 20/07/2010 09:17:28
#347858
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
JAMESBOND007 20/07/2010 09:21:18
#347863
Leia este artigo pode te ajudar.

http://www.macoratti.net/vbn_img.htm
MATFURRIER 20/07/2010 09:44:22
#347872
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
JAMESBOND007 20/07/2010 09:48:44
#347875
Segue o exemplo no link para você estudar http://uploaddearquivos.com.br/download/Exemplo.rar
JCARLOS 20/07/2010 10:28:59
#347887
Veja se este exemplo te ajuda. Pra mim resolveu.
MATFURRIER 20/07/2010 10:42:31
#347893
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 !
FEDERHEN 20/07/2010 11:15:33
#347896
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.
MATFURRIER 21/07/2010 07:59:13
#347996
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
MSMJUDAS 21/07/2010 17:25:19
#348067
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[Ô]
Tópico encerrado , respostas não são mais permitidas