Cirilo7 Posted May 18, 2009 at 08:42 PM Report #265179 Posted May 18, 2009 at 08:42 PM 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!!!!!
vasco16 Posted May 18, 2009 at 08:45 PM Report #265181 Posted May 18, 2009 at 08:45 PM 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
Cirilo7 Posted May 18, 2009 at 09:04 PM Author Report #265192 Posted May 18, 2009 at 09:04 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now