GUARDAR IMAGEM NA BD SQL E CARREGA-LA NO IMAGEBOX
Estou a fazer um projecto aqui na empresa para gestão de contactos que os utilizadores têm para os poderem ser partilhados, só que queria inserir as fotos de cartão e foto do contacto no servidor numa bd em sql e estou com um bocado de dificuldades.
Podiam-me dizer a forma mais fácil de o fazer e darem um código exemplo para guardar na bd e carrega-las para o programa!
Desde já, obrigado
Já ouvi boatos que é possÃvel gravar a imagem na BD, só que é um método pesado e trabalhoso.
Então o método simples é:
Coloque as imagens em alguma pasta padrão e no BD crie um campo do tipo Varchar(255) e nesse campo você armazenará o caminho das imagens. Por exemplo:
C:ProjetoImagensimagem1.jpg
assim em diante
e para mostrar em uma Picture o Imagem é só atribuir o valor desse campo do BD para a propriedade [Ô]Picture[Ô] desses 2 objetos.
Então o método simples é:
Coloque as imagens em alguma pasta padrão e no BD crie um campo do tipo Varchar(255) e nesse campo você armazenará o caminho das imagens. Por exemplo:
C:ProjetoImagensimagem1.jpg
assim em diante
e para mostrar em uma Picture o Imagem é só atribuir o valor desse campo do BD para a propriedade [Ô]Picture[Ô] desses 2 objetos.
MIGUELSA3, boa noite..
Não é aconselhavel armazenar imagens no banco da dados porque isto o tarnará pesado e robusto fazendo com que uma simples pesquisar se torne um processo longo e demorado ao longo do tempo. o que você pode fazer e seguir o conselho do nosso amigo DOUTORX e usar uma pasta, e salvar no banco de dados somente o caminho da imagem que você quer. E para carrega-la basta você utilizar o comando LoadPicture ([Ô]CaminhoNome_da_imagem.formato[Ô]) na property Picture do objeto Image ou PictureBox, ok?????
Qualquer dúvida poste novamente.
Não é aconselhavel armazenar imagens no banco da dados porque isto o tarnará pesado e robusto fazendo com que uma simples pesquisar se torne um processo longo e demorado ao longo do tempo. o que você pode fazer e seguir o conselho do nosso amigo DOUTORX e usar uma pasta, e salvar no banco de dados somente o caminho da imagem que você quer. E para carrega-la basta você utilizar o comando LoadPicture ([Ô]CaminhoNome_da_imagem.formato[Ô]) na property Picture do objeto Image ou PictureBox, ok?????
Qualquer dúvida poste novamente.
O código que fiz foi este, sabem-me dizer pq dá erro(string or binary data would be truncated)?
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
[ô]falta introduzir fotos
If vInc Then
[ô]Inclusão:
.CommandText = [Ô]INSERT INTO CONTACTO (id, nome, contacto, data_nasc, morada, codpostal, email, telefone, telemovel, fax, utilizador, privado, pathcartao, pathfoto) VALUES ([ô][Ô] & txtID.Text & [Ô][ô],[ô][Ô] & txtempresa.Text & [Ô][ô],[ô][Ô] & txtnome.Text & [Ô][ô],[ô][Ô] & Format(txtdatanasc, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô],[ô][Ô] & txtmorada.Text & [Ô][ô],[ô][Ô] & txtcpostal.Text & [Ô][ô],[ô][Ô] & txtemail.Text & [Ô][ô],[ô][Ô] & txttelefone.Text & [Ô][ô],[ô][Ô] & txttelemovel.Text & [Ô][ô],[ô][Ô] & txtfax.Text & [Ô][ô],[ô][Ô] & txtUtilizador.Text & [Ô][ô], [ô][Ô] & privado & [Ô][ô], [ô][Ô] & [Ô]\servere$GestContactoscartoes[Ô] & [Ô]txtempresa.text[Ô] & [Ô].jpg[Ô] & [Ô][ô], [ô][Ô] & [Ô]\servere$GestContactosfotos[Ô] & [Ô]txtnome.text[Ô] & [Ô].jpg[Ô] & [Ô][ô]);[Ô]
Else
[ô]Alteração:
.CommandText = [Ô]UPDATE CONTACTO SET nome = [ô][Ô] & txtempresa.Text & [Ô][ô],[Ô] & [Ô] contacto = [ô][Ô] & txtcontacto.Text & [Ô][ô],[Ô] & [Ô] data_nasc = [ô][Ô] & txtdatanasc.Text & [Ô][ô],[Ô] & [Ô] morada = [ô][Ô] & txtmorada.Text & [Ô][ô],[Ô] & [Ô] codpostal = [ô][Ô] & txtcpostal.Text & [Ô][ô],[Ô] & [Ô] email = [ô][Ô] & txtemail.Text & [Ô][ô],[Ô] & [Ô] telefone = [ô][Ô] & txttelefone.Text & [Ô][ô],[Ô] & [Ô] telemovel = [ô][Ô] & txttelemovel.Text & [Ô][ô],[Ô] & [Ô] fax = [ô][Ô] & txtfax.Text & [Ô][ô],[Ô] & [Ô] utilizador = [ô][Ô] & txtUtilizador.Text & [Ô][ô],[Ô] & [Ô] privado = [ô][Ô] & privado & [Ô][ô][Ô] & [Ô] WHERE idEmpresa = [ô][Ô] & txtIDEmpresa.Text & [Ô][ô];[Ô]
End If
.Execute
End With
[ô]filecopy(destino do ficheiro incial,Destino final)
FileCopy strFoto, [Ô]\servere$GestContactosfotos[Ô] & [Ô]txtnome.text[Ô] & [Ô].jpg[Ô]
FileCopy strCartao, [Ô]\servere$GestContactoscartoes[Ô] & [Ô]txtempresa.text[Ô] & [Ô].jpg[Ô]
With cnnComando
.ActiveConnection = cnn
.CommandType = adCmdText
[ô]falta introduzir fotos
If vInc Then
[ô]Inclusão:
.CommandText = [Ô]INSERT INTO CONTACTO (id, nome, contacto, data_nasc, morada, codpostal, email, telefone, telemovel, fax, utilizador, privado, pathcartao, pathfoto) VALUES ([ô][Ô] & txtID.Text & [Ô][ô],[ô][Ô] & txtempresa.Text & [Ô][ô],[ô][Ô] & txtnome.Text & [Ô][ô],[ô][Ô] & Format(txtdatanasc, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô],[ô][Ô] & txtmorada.Text & [Ô][ô],[ô][Ô] & txtcpostal.Text & [Ô][ô],[ô][Ô] & txtemail.Text & [Ô][ô],[ô][Ô] & txttelefone.Text & [Ô][ô],[ô][Ô] & txttelemovel.Text & [Ô][ô],[ô][Ô] & txtfax.Text & [Ô][ô],[ô][Ô] & txtUtilizador.Text & [Ô][ô], [ô][Ô] & privado & [Ô][ô], [ô][Ô] & [Ô]\servere$GestContactoscartoes[Ô] & [Ô]txtempresa.text[Ô] & [Ô].jpg[Ô] & [Ô][ô], [ô][Ô] & [Ô]\servere$GestContactosfotos[Ô] & [Ô]txtnome.text[Ô] & [Ô].jpg[Ô] & [Ô][ô]);[Ô]
Else
[ô]Alteração:
.CommandText = [Ô]UPDATE CONTACTO SET nome = [ô][Ô] & txtempresa.Text & [Ô][ô],[Ô] & [Ô] contacto = [ô][Ô] & txtcontacto.Text & [Ô][ô],[Ô] & [Ô] data_nasc = [ô][Ô] & txtdatanasc.Text & [Ô][ô],[Ô] & [Ô] morada = [ô][Ô] & txtmorada.Text & [Ô][ô],[Ô] & [Ô] codpostal = [ô][Ô] & txtcpostal.Text & [Ô][ô],[Ô] & [Ô] email = [ô][Ô] & txtemail.Text & [Ô][ô],[Ô] & [Ô] telefone = [ô][Ô] & txttelefone.Text & [Ô][ô],[Ô] & [Ô] telemovel = [ô][Ô] & txttelemovel.Text & [Ô][ô],[Ô] & [Ô] fax = [ô][Ô] & txtfax.Text & [Ô][ô],[Ô] & [Ô] utilizador = [ô][Ô] & txtUtilizador.Text & [Ô][ô],[Ô] & [Ô] privado = [ô][Ô] & privado & [Ô][ô][Ô] & [Ô] WHERE idEmpresa = [ô][Ô] & txtIDEmpresa.Text & [Ô][ô];[Ô]
End If
.Execute
End With
[ô]filecopy(destino do ficheiro incial,Destino final)
FileCopy strFoto, [Ô]\servere$GestContactosfotos[Ô] & [Ô]txtnome.text[Ô] & [Ô].jpg[Ô]
FileCopy strCartao, [Ô]\servere$GestContactoscartoes[Ô] & [Ô]txtempresa.text[Ô] & [Ô].jpg[Ô]
Tópico encerrado , respostas não são mais permitidas