Usuário com melhor resposta
Armazenar o local da imagem no banco.

Pergunta
-
Respostas
-
Ajuda por favor ;)
obg
Usa parametro.MySqlCommand command = new MySqlCommand("insert into produto(imagem) values (@armazenaimagem)", mConn); command.Parameters.Add("@armazenaimagem", SqlDbType.Image).Value=armazenaimagem;
Just Be Humble Malange!- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 22 de julho de 2010 16:53
- Marcado como Resposta henriquenetinhoo sexta-feira, 23 de julho de 2010 02:03
Todas as Respostas
-
Alguem tem algum exemplo de armazenar o local da imagem no banco, e depois adquirir ela de volta ??
AQui tem um exemplo simples e pratico: http://www.shabdar.org/store-save-images-in-sql-server.html
Just Be Humble Malange! -
Henrique, você pode ter uma tabela de produtos por exemplo com a seguinte estrutura:
Produto
ID INT,
NOME VARCHAR(200),
CAMINHO_IMAGEM VARCHAR(500),
DATA_CADASTRO DATETIME
Quando gravar um produto nessa tabela ficaria +/- assim:
ID NOME CAMINHO_IMAGEM DATA_CADASTRO
1 Caneta ~/imagens/produto/Produto1.jpeg 2010-07-20 10:59:00.484
E na sua aplicação você teria um objeto Produto:
public class Produto { public int ID { get; set } public string Nome { get; set } public string CaminhoImagem { get; set } public DateTime DataCadastro { get; set } }
Quando você recuperar esse produto no banco, você seta o valor do campo para a propriedade CaminhoImagem, e na sua página aspx, você terá um controle que irá exibir a imagem de acordo com o caminho passado, tudo bem?
Cássio V1RU5- Sugerido como Resposta Cássio B. Pereira terça-feira, 20 de julho de 2010 14:05
- Não Sugerido como Resposta henriquenetinhoo quarta-feira, 21 de julho de 2010 13:51
-
Bem tentei armazenar dessa forma abaixo , achei q estava certo no entanto qdo armazenei vi no mysql q foi retirada as barras do local... alguem sabe informar pq ?
Pq sem as barras nao tem como eu recuperar o local da imagem da error ...
private void carregaImagem()
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
openFileDialog1.Title = "Abrir Imagem";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = openFileDialog1.FileName;
armazenaimagem = openFileDialog1.FileName;
}
else
{
pictureBox1.ImageLocation = localimagem;
}
}
Nesse carregaImagem() eu abro um open dialog escolho a imagem e jogo no picturebox... se eu mostrar a VARIAVEL ARMAZENAIMAGEM e jogar na tela aparece com as barras no entanto qdo salvo as barras sao retiradass....
OBG!
-
Henrique,
Mostre pra gente como você está fazendo o armazenamento do caminho no banco...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using MySql.Data.MySqlClient;using System.IO;
namespace PeShow{public partial class FProdutoNovo : Form{private MySqlConnection mConn = null;private DataSet bdDataSet = null;private MySqlCommand commS = null;private MySqlDataReader rs = null;public String localimagem = "C:\\Users\\user\\Documents\\huahuauha.jpg";public String armazenaimagem = null;
public FProdutoNovo(){InitializeComponent();}
private void alterarToolStripMenuItem_Click(object sender, EventArgs e){carregaImagem();
}
private void FProdutoNovo_Load(object sender, EventArgs e){abreconexao();}
######################################################CARREGANDO A IMAGEM NO PICTUREBOX######################################################
private void carregaImagem(){OpenFileDialog openFileDialog1 = new OpenFileDialog();openFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";openFileDialog1.Title = "Abrir Imagem";if (openFileDialog1.ShowDialog() == DialogResult.OK){pictureBox1.ImageLocation = openFileDialog1.FileName;armazenaimagem = openFileDialog1.FileName;}else{pictureBox1.ImageLocation = localimagem;}}
####################################ABRINDO A CONEXAO####################################
public void abreconexao(){bdDataSet = new DataSet();mConn = new MySqlConnection(" Persist Security Info=False;server=localhost;database=peeshow;uid=root;server=localhost;database=peeshow;uid=root;pwd=root");
try{mConn.Open();
}catch{MessageBox.Show("Error na Conexão ao banco.");}}
########################################################################AQUI ESTOU TENTANDO ARMAZENAR A IMAGEM O LOCAL, QUE ESTA NA VARIAVEL ARMAZENAIMAGEM################## ######################################################
private void button1_Click(object sender, EventArgs e){if (mConn.State == ConnectionState.Open){MySqlCommand command = new MySqlCommand("insert into produto(imagem) values('" + armazenaimagem + "')", mConn);if (MessageBox.Show("Confirma inclusão? ", "Incluir", MessageBoxButtons.YesNo) == DialogResult.Yes){command.BeginExecuteNonQuery();MessageBox.Show(armazenaimagem);
}else{Close();}}}
###########NESSE BOTAO EU TENTO CAPTURAR O LOCAL DA IMAGEM....###########
private void button2_Click(object sender, EventArgs e){MySqlCommand cm1 = new MySqlCommand("select imagem from produto where idproduto = 1", mConn);rs = cm1.ExecuteReader();if (rs.Read()){String a = rs["imagem"].ToString();textBox1.Text = a;pictureBox2.ImageLocation = a;}}
}}
-
-
Ajuda por favor ;)
obg
Usa parametro.MySqlCommand command = new MySqlCommand("insert into produto(imagem) values (@armazenaimagem)", mConn); command.Parameters.Add("@armazenaimagem", SqlDbType.Image).Value=armazenaimagem;
Just Be Humble Malange!- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 22 de julho de 2010 16:53
- Marcado como Resposta henriquenetinhoo sexta-feira, 23 de julho de 2010 02:03
-
Deu certo Malange, para inserir ! OBG
Para capturar de volta está assim
private void button2_Click(object sender, EventArgs e)
{
MySqlCommand cm1 = new MySqlCommand("select imagem from produto where idproduto = 8", mConn);
rs = cm1.ExecuteReader();
if (rs.Read())
{
String a = rs["imagem"].ToString();
textBox1.Text = a;
MessageBox.Show(a);
pictureBox2.ImageLocation = a;
}
}
Eu posso utilizar o parameters tbm para capturar ?
-
Henrique,
Se for fazer com SELECT, o máximo de parâmetros que dá pra você utilizar, seria passar como parâmetro o seu idproduto... Agora, para pegar a imagem de volta, seria do jeito que você está fazendo mesmo...
O que você poderia fazer (que eu particularmente não faria) seria criar uma procedure que retorna o caminho a partir da idproduto, aí você poderia pegar o caminho com parâmetros de output... Mas, aí não faz sentido, você estaria complicando o que não precisa ser complicado... :)
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
-
Nossa, agora me perdi... Como assim tem que ser duas barras?
Se você salvou com duas barras tem que ficar com duas barras... Como ficou o seu método para salvar no banco?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Meu metodo ficou assim de inserir o caminho no BANCO...
private void button1_Click(object sender, EventArgs e)
{
if (mConn.State == ConnectionState.Open)
{
MySqlCommand command = new MySqlCommand("insert into produto(imagem) values (@armazenaimagem)", mConn);
command.Parameters.Add("@armazenaimagem", MySqlDbType.String).Value = armazenaimagem;
if (MessageBox.Show("Confirma inclusão? ", "Incluir", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
command.BeginExecuteNonQuery();
MessageBox.Show(armazenaimagem);
}
else
{
Close();
}
}
}
Como o Malange me ajudou acima, desse jeito que ele me flw armazena no banco a \ do outro mdo q eu estava armazenando a \ nao era armazenada no banco..... ESSE METODO JA ESTA FUNCIONANDO....
No entanto quando vo capturar o LOCAL ele vem com uma \ ate ai tudo bem q so tem uma barra, como poderia voltar com duas hehe...
no entanto o ImageLocation do PictureBox onde vc coloca a direcao da imagem, pede que voce colocque duas \\ nao sei pq mais ele so captura a imagem se tiver com \\
EXEMPLO: C:\\Users\\user\\Desktop\img.jpg
No banco retorna assim C:\Users\user\Desktop\img.jpg
tendeu agora ?
OBG!
-
Podes fazer um favor fecha este thread marca como respondida e abre um novo thread ai vamos responder a sua pergunta, assim ajuda os outros usuarios tambem.
Por que a sua pergunata original foi respondida.
Obrigado.
Just Be Humble Malange!