INSERIR IMAGENS
Boas.
Na aplicação que estou a fazer, necessito de colocar uma fotos para ficarem registadas. O problema é que essas fotos,mais tarde vão ser precisas para serem visionadas futuramente.
Duvida nº 1: Como coloco as fotos na bd?
Duvida nº 2: Como faço para depois visionar as fotos?
Tenho codigo para buscar as fotos,mas o resto não consigo fazer porque dá erro atras de erro
Codigo para ir buscar as fotos
Private Sub btnFotoSeloWindows_Click(sender As System.Object, e As System.EventArgs) Handles btnFotoSeloWindows.Click
dlgFicheiro.Title = [Ô]Seleccionar Ficheiro[Ô]
dlgFicheiro.InitialDirectory = CurDir()
dlgFicheiro.Filter = [Ô]Ficheiros de imagem|*.jpg[Ô]
If dlgFicheiro.ShowDialog = Windows.Forms.DialogResult.OK Then
pbxSeloWindows.Image = New Bitmap(dlgFicheiro.FileName)
End If
End Sub
Private Sub btnFotoSeloOffice_Click(sender As System.Object, e As System.EventArgs) Handles btnFotoSeloOffice.Click
dlgFicheiro.Title = [Ô]Seleccionar Ficheiro[Ô]
dlgFicheiro.InitialDirectory = CurDir()
dlgFicheiro.Filter = [Ô]Ficheiros de imagem|*.jpg[Ô]
If dlgFicheiro.ShowDialog = Windows.Forms.DialogResult.OK Then
pbxSeloOffice.Image = New Bitmap(dlgFicheiro.FileName)
End If
End Sub
como podem ver são 2 botoes para 1 foto cada.
Agora eu queria colocar essas fotos em BD para mais tarde poder vizualizar.
Para o insert tenho o seguinte codigo:
Private Sub btnok_Click(sender As System.Object, e As System.EventArgs) Handles btnok.Click
[ô] Define a Connection String
Dim myConnectionString As String = _
[Ô]Data Source=.\SQLEXPRESS; Initial Catalog=GestInformatica; Integrated Security=SSPI;[Ô]
Try
[ô] Cria um novo FileStream para leitura da imagem
Dim fs As New IO.FileStream(Application.StartupPath & [Ô]\*.jpg[Ô], IO.FileMode.Open, IO.FileAccess.Read) [ô] erro na pasta
[ô] Cria um array de Bytes do tamanho do FileStream
Dim ImageData(fs.Length() - 1) As Byte
[ô]Lê os bytes do FileStream para o array criado
fs.Read(ImageData, 0, ImageData.Length)
[ô] Fecha o FileStream ficando a imagem guardada no array
fs.Close()
Using connection As New SqlClient.SqlConnection(myConnectionString)
[ô] Define o commando Transact-SQL para inserir dados
Dim SQL As String = [Ô]INSERT INTO foto ([fotoffice],[fotowin]) VALUES (@fotoffice,@fotowin);[Ô]
Dim command As New SqlClient.SqlCommand(SQL, connection)
[ô] Define os parametros para a inserção de dados, onde está o array
[ô] de bytes(imagem) a ser inserida. O tipo do campo é Image
command.Parameters.Add([Ô]@fotoffice[Ô], SqlDbType.Image).Value = ImageData
command.Parameters.Add([Ô]@fotowin[Ô], SqlDbType.Image).Value = ImageData
connection.Open()
[ô] Insere os campos no SQL
command.ExecuteNonQuery()
End Using
MsgBox([Ô] Registo inserido com sucesso [Ô], MsgBoxStyle.Information)
Catch ex As Exception
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End Try
Me.Close()
registo.Show()
End Sub
mas está a dar erros.
Podem-me ajudar ? Agradecia muito
Na aplicação que estou a fazer, necessito de colocar uma fotos para ficarem registadas. O problema é que essas fotos,mais tarde vão ser precisas para serem visionadas futuramente.
Duvida nº 1: Como coloco as fotos na bd?
Duvida nº 2: Como faço para depois visionar as fotos?
Tenho codigo para buscar as fotos,mas o resto não consigo fazer porque dá erro atras de erro
Codigo para ir buscar as fotos
Private Sub btnFotoSeloWindows_Click(sender As System.Object, e As System.EventArgs) Handles btnFotoSeloWindows.Click
dlgFicheiro.Title = [Ô]Seleccionar Ficheiro[Ô]
dlgFicheiro.InitialDirectory = CurDir()
dlgFicheiro.Filter = [Ô]Ficheiros de imagem|*.jpg[Ô]
If dlgFicheiro.ShowDialog = Windows.Forms.DialogResult.OK Then
pbxSeloWindows.Image = New Bitmap(dlgFicheiro.FileName)
End If
End Sub
Private Sub btnFotoSeloOffice_Click(sender As System.Object, e As System.EventArgs) Handles btnFotoSeloOffice.Click
dlgFicheiro.Title = [Ô]Seleccionar Ficheiro[Ô]
dlgFicheiro.InitialDirectory = CurDir()
dlgFicheiro.Filter = [Ô]Ficheiros de imagem|*.jpg[Ô]
If dlgFicheiro.ShowDialog = Windows.Forms.DialogResult.OK Then
pbxSeloOffice.Image = New Bitmap(dlgFicheiro.FileName)
End If
End Sub
como podem ver são 2 botoes para 1 foto cada.
Agora eu queria colocar essas fotos em BD para mais tarde poder vizualizar.
Para o insert tenho o seguinte codigo:
Private Sub btnok_Click(sender As System.Object, e As System.EventArgs) Handles btnok.Click
[ô] Define a Connection String
Dim myConnectionString As String = _
[Ô]Data Source=.\SQLEXPRESS; Initial Catalog=GestInformatica; Integrated Security=SSPI;[Ô]
Try
[ô] Cria um novo FileStream para leitura da imagem
Dim fs As New IO.FileStream(Application.StartupPath & [Ô]\*.jpg[Ô], IO.FileMode.Open, IO.FileAccess.Read) [ô] erro na pasta
[ô] Cria um array de Bytes do tamanho do FileStream
Dim ImageData(fs.Length() - 1) As Byte
[ô]Lê os bytes do FileStream para o array criado
fs.Read(ImageData, 0, ImageData.Length)
[ô] Fecha o FileStream ficando a imagem guardada no array
fs.Close()
Using connection As New SqlClient.SqlConnection(myConnectionString)
[ô] Define o commando Transact-SQL para inserir dados
Dim SQL As String = [Ô]INSERT INTO foto ([fotoffice],[fotowin]) VALUES (@fotoffice,@fotowin);[Ô]
Dim command As New SqlClient.SqlCommand(SQL, connection)
[ô] Define os parametros para a inserção de dados, onde está o array
[ô] de bytes(imagem) a ser inserida. O tipo do campo é Image
command.Parameters.Add([Ô]@fotoffice[Ô], SqlDbType.Image).Value = ImageData
command.Parameters.Add([Ô]@fotowin[Ô], SqlDbType.Image).Value = ImageData
connection.Open()
[ô] Insere os campos no SQL
command.ExecuteNonQuery()
End Using
MsgBox([Ô] Registo inserido com sucesso [Ô], MsgBoxStyle.Information)
Catch ex As Exception
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End Try
Me.Close()
registo.Show()
End Sub
mas está a dar erros.
Podem-me ajudar ? Agradecia muito
Óh pessoal...
Alguem me pode dar um exemplo de como inserir uma foto numa tabela?
Agradecia a ajuda.
Já não sei onde procurar mais ajuda
Alguem me pode dar um exemplo de como inserir uma foto numa tabela?
Agradecia a ajuda.
Já não sei onde procurar mais ajuda
Sinceramente, eu aconselho criar uma pasta acessÃvel para sua aplicação, colocar as fotos lá e gravar no banco de dados somente o caminho e nome da imagem. Gravar imagem no banco de dados, é uma péssima idéia, visto que faz seu banco de dados inchar feito um balão em um perÃodo bem curto de tempo...
Olá KERPLUNK
Agradeço a sua ajuda, e ja agora podes colocar um exemplo de codigo como eu posso fazer isso?
Agradeço a sua ajuda, e ja agora podes colocar um exemplo de codigo como eu posso fazer isso?
Excetuando a parte relativa a abria a caixa de diálogo e abrir a imagem, a parte em que inseres os valores no banco de dados:
[ô] Define o commando Transact-SQL para inserir dados
Dim SQL As String = [Ô]INSERT INTO foto ([fotoffice],[fotowin]) VALUES (@fotoffice,@fotowin);[Ô]
Dim command As New SqlClient.SqlCommand(SQL, connection)
[ô] Define os parametros para a inserção de dados, onde está o array
[ô] de bytes(imagem) a ser inserida. O tipo do campo é Image
command.Parameters.Add([Ô]@fotoffice[Ô], SqlDbType.Image).Value = ImageData
command.Parameters.Add([Ô]@fotowin[Ô], SqlDbType.Image).Value = ImageData
Fica praticamente igual, a diferença é que a tabela foto, conterá campos VarChar, que conterão o caminho e nome da imagem... de resto é praticamente igual o que tu já tens.
[ô] Define o commando Transact-SQL para inserir dados
Dim SQL As String = [Ô]INSERT INTO foto ([fotoffice],[fotowin]) VALUES (@fotoffice,@fotowin);[Ô]
Dim command As New SqlClient.SqlCommand(SQL, connection)
[ô] Define os parametros para a inserção de dados, onde está o array
[ô] de bytes(imagem) a ser inserida. O tipo do campo é Image
command.Parameters.Add([Ô]@fotoffice[Ô], SqlDbType.Image).Value = ImageData
command.Parameters.Add([Ô]@fotowin[Ô], SqlDbType.Image).Value = ImageData
Fica praticamente igual, a diferença é que a tabela foto, conterá campos VarChar, que conterão o caminho e nome da imagem... de resto é praticamente igual o que tu já tens.
Muito bem. Vou experimentar então
Obrigado pela ajuda
Depois direi alguma coisa
Ora viva mais uma vez.
Estive a experimentar a fazer as alterações á tabela,mas esta não deixa mudar de Image para Varchar
Continuo a ter erro aqui:
Dim fs As New IO.FileStream(Application.StartupPath, IO.FileMode.Open, IO.FileAccess.Read) [ô] erro [Ô]Access to the path ... is denied.[Ô]
Alguma sugestão?
Estive a experimentar a fazer as alterações á tabela,mas esta não deixa mudar de Image para Varchar
Continuo a ter erro aqui:
Dim fs As New IO.FileStream(Application.StartupPath, IO.FileMode.Open, IO.FileAccess.Read) [ô] erro [Ô]Access to the path ... is denied.[Ô]
Alguma sugestão?
[Ô]Access to the path ... is denied. [Ô] significa que não tens acesso à pasta que está tentando abrir...
Eu estou a criar uma aplicação para a gestão de um parque informatico. E eu quero tirar fotos aos selos para guarda-los, porque eu vou inserir na mesma os serials e as fotos é para comprovar que realmente o serial é valido,visto que é para uma empresa.
Estás agora a perceber o que eu pretendo?
Eu tiro fotos aos selos do windows e do office e quero guarda-las ou em uma pasta ou na BD
Buscar as fotos a um sitio e guarda-las , por exemplo, na pasta da aplicação.....
Ou aconselhas de outra maneira?
Estás agora a perceber o que eu pretendo?
Eu tiro fotos aos selos do windows e do office e quero guarda-las ou em uma pasta ou na BD
Buscar as fotos a um sitio e guarda-las , por exemplo, na pasta da aplicação.....
Ou aconselhas de outra maneira?
Tópico encerrado , respostas não são mais permitidas