Pergunta 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:50
    Moderador
     
     

    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:22
     
     
    Alguém me pode ajudar..please...
  • sexta-feira, 4 de maio de 2012 12:56
     
     
  • sexta-feira, 4 de maio de 2012 17:46
    Moderador
     
     

    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
     
      Contém Código

    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
     
     

    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?

    Vc pode me ajudar?
  • quinta-feira, 10 de maio de 2012 21:36
    Moderador
     
     
    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!

  • 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:14
    Moderador
     
     

    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:24
     
     
    Para 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
     
     

    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!

    Obrigado pelo exemplo...mas eu estou a usar o WindowsForm..e dessa forma não dá. 
  • 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!
    Primeiro confira se as imagens estão sendo armazenadas corretamente.
    Veja a explicação do (Malange - Levi)...

    É ajudando os outros que nos ajudamos...


    Obrigado pelo exemplo...mas eu estou a usar o WindowsForm..e dessa forma não dá. 
  • 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