Inserir imagem - GridView
-
quinta-feira, 3 de maio de 2012 17:48
Boa tarde.
Estou a ter dificuldade em inserir imagens numa GridView.
Quando corro em debug aparece a imagem que coloquei.
O metodo que busca os campos da basedados.. retorna na Grid.
public void displayRecords()
{
try
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("SELECT Nome, Ano, Genero, Elenco, Sinopse, Imagem, pais FROM tb_movie", connection);
da.Fill(dt);
Form1.MyGrid.DataSource = dt.DefaultView;
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}
Quem me pode ajudar? Preciso imenso de ajuda neste tópico- Editado Xiri99 segunda-feira, 7 de maio de 2012 22:50
Todas as Respostas
-
quinta-feira, 3 de maio de 2012 22:50Moderador
public void displayRecords()
{
try
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("SELECT Nome, Ano, Genero, Elenco, Sinopse, Imagem, pais FROM tb_movie", connection);
da.Fill(dt);BindingSource source = new BindingSource();
source.DataSource = dt;
Form1.MyGrid.DataSource =source; // a bindigsource convert streams files em imagem automaticamente;
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}Se o amor fosse pecado, quem seria INOCENTE?
-
sexta-feira, 4 de maio de 2012 09:21
public void displayRecords()
{
try
{
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("SELECT Nome, Ano, Genero, Elenco, Sinopse, Imagem, pais FROM tb_movie", connection);
da.Fill(dt);BindingSource source = new BindingSource();
source.DataSource = dt;
Form1.MyGrid.DataSource =source; // a bindigsource convert streams files em imagem automaticamente;
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}
Se o amor fosse pecado, quem seria INOCENTE?
Continua a dar o mesmo erro. Mas se eu for clicando no ok, fica assim na GridView.
-
sexta-feira, 4 de maio de 2012 12:22Alguém me pode ajudar..please...
-
sexta-feira, 4 de maio de 2012 12:56
-
sexta-feira, 4 de maio de 2012 17:46Moderador
Acho que voce gravou mal a imagem na base de dados, este simbolo quer dizer que nao existe imagem nenhuma no campo Imagem.
Posta aki o codigo, de como voce fez pra gravar imagem na tabela, por favor.
Outra coisa, vamos testar se realmente existe imagem, adciona uma picturebox no teu form1. depois faz select , usa o mesmo bindingsource que postei, so que desta vez vais ter de usar binding.add.
picturebox1.databinding.add("Image", source", Imagem, true);
Se mostar a imagem entao esta tudo legar, se nao mostrar, voce fez mal o insert.
Se o amor fosse pecado, quem seria INOCENTE?
-
sábado, 5 de maio de 2012 00:47
Acho que voce gravou mal a imagem na base de dados, este simbolo quer dizer que nao existe imagem nenhuma no campo Imagem.
Posta aki o codigo, de como voce fez pra gravar imagem na tabela, por favor.
Outra coisa, vamos testar se realmente existe imagem, adciona uma picturebox no teu form1. depois faz select , usa o mesmo bindingsource que postei, so que desta vez vais ter de usar binding.add.
picturebox1.databinding.add("Image", source", Imagem, true);
Se mostar a imagem entao esta tudo legar, se nao mostrar, voce fez mal o insert.
Se o amor fosse pecado, quem seria INOCENTE?
Fiz o que me pediu..mas aprece este erro:
no sql tenho o campo na tabela com Image. Assim é como está gravado no SQL
//o botão que carrega a imagem..e coloca numa PictureBox private void btnCarregar_Foto_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Abrir Foto"; dlg.Title = "JPG (*.jpg)|*.jpg" + "|PNG (*.png)|*.png" + "All files (*.*)|*.*"; if (dlg.ShowDialog() == DialogResult.OK) { try { picFoto.Image = new Bitmap(dlg.OpenFile()); foto = dlg.FileName; } catch (Exception ex) { MessageBox.Show("Não é possível carregar a foto:" + ex.Message); } dlg.Dispose(); } } //convert a imagem em string public static byte[] GetFoto(string caminhoArquivoFoto) { FileStream fs = new FileStream(caminhoArquivoFoto, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] foto = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); return foto; }
metodo que vai gravar os dados no sql public void insertMovie(string nome, string ano, string genero, string elenco, string sinopse, string caminhoFoto, string pais) { byte[] fotoImagem = GetFoto(caminhoFoto); SqlCommand cmd = new SqlCommand("INSERT INTO tb_movie (" + "Nome,Ano,Genero,Elenco,Sinopse,Imagem,pais)" + "VALUES(@Nome,@Ano,@Genero,@Elenco,@Sinopse,@Imagem,@pais)", myConnection); cmd.Parameters.Add("@Nome", SqlDbType.VarChar, 100).Value = nome; cmd.Parameters.Add("@Ano", SqlDbType.Int).Value = ano; cmd.Parameters.Add("@Genero", SqlDbType.VarChar, 1000).Value = genero; cmd.Parameters.Add("@Elenco", SqlDbType.VarChar, 100).Value = elenco; cmd.Parameters.Add("@Sinopse", SqlDbType.VarChar, 100).Value = sinopse; cmd.Parameters.Add("@Imagem", SqlDbType.Image, foto.Length).Value = fotoImagem; cmd.Parameters.Add("@pais", SqlDbType.VarChar, 50).Value = pais; try { myConnection.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Inserido com Sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Erro ao incluir dados:" + ex.Message); } finally { myConnection.Close(); } }Agradeço imenso a sua ajuda.
-
terça-feira, 8 de maio de 2012 15:13
Vc pode me ajudar?Acho que voce gravou mal a imagem na base de dados, este simbolo quer dizer que nao existe imagem nenhuma no campo Imagem.
Posta aki o codigo, de como voce fez pra gravar imagem na tabela, por favor.
Outra coisa, vamos testar se realmente existe imagem, adciona uma picturebox no teu form1. depois faz select , usa o mesmo bindingsource que postei, so que desta vez vais ter de usar binding.add.
picturebox1.databinding.add("Image", source", Imagem, true);
Se mostar a imagem entao esta tudo legar, se nao mostrar, voce fez mal o insert.
Se o amor fosse pecado, quem seria INOCENTE?
-
quinta-feira, 10 de maio de 2012 21:36Moderadorpicturebox1.databinding.add("Image", source", "Nome do campo da imagem na tabela", true);
O Amor que Sinto por Ti, Apenas Deus e capaz de sentir e superar tal amor!
-
terça-feira, 15 de maio de 2012 14:00
picturebox1.databinding.add("Image", source", "Nome do campo da imagem na tabela", true);
O Amor que Sinto por Ti, Apenas Deus e capaz de sentir e superar tal amor!
Continua a dar o mesmo erro..vc podia postar colocar esse código no meu código que postei..para eu ver onde estou a errar? ou se à outra forma de gravar imagem em sql..e depois inserir numa gridview..em webform...
Agradeço toda ajuda
-
terça-feira, 15 de maio de 2012 16:14Moderador
Desculpa voce esta a usar gridview, aki esta o exemplo da MS: http://msdn.microsoft.com/en-us/library/aa479350.aspx
O Amor que Sinto por Ti, Apenas Deus e capaz de sentir e superar tal amor!
-
terça-feira, 15 de maio de 2012 21:24Para exibir a imgem no GridView é fácil fácil, mas pelo que percebemos você não gravou corretamente a imagem no banco!
Primeiro confira se as imagens estão sendo armazenadas corretamente.
Veja a explicação do (Malange - Levi)...
É ajudando os outros que nos ajudamos...
- Editado Terra Jr terça-feira, 15 de maio de 2012 21:25
-
quinta-feira, 17 de maio de 2012 10:15
Obrigado pelo exemplo...mas eu estou a usar o WindowsForm..e dessa forma não dá.Desculpa voce esta a usar gridview, aki esta o exemplo da MS: http://msdn.microsoft.com/en-us/library/aa479350.aspx
O Amor que Sinto por Ti, Apenas Deus e capaz de sentir e superar tal amor!
-
quinta-feira, 17 de maio de 2012 10:15
Para exibir a imgem no GridView é fácil fácil, mas pelo que percebemos você não gravou corretamente a imagem no banco!
Obrigado pelo exemplo...mas eu estou a usar o WindowsForm..e dessa forma não dá.
Primeiro confira se as imagens estão sendo armazenadas corretamente.
Veja a explicação do (Malange - Levi)...
É ajudando os outros que nos ajudamos...
-
quinta-feira, 17 de maio de 2012 11:37
Vai ao DataGridView Tasks e clica em add coluns, inseri uma coluna do tipo imagem, e as outras colunas você preenche com um DataTable e da um grid.DataSource = DataTable!
isso que estou te passando é pog! Não aconselho fazer desta maneira mais pra winform é o jeito que conheço! O jeito habitual de se fazer seria web!
Att. Lucas Rodrigues

