none
datagrid imagem RRS feed

  • Pergunta

  • Galera tenho uma imagem que esta armazenada no mysql e um data grid onde clico em um dos campos ele preenche os textbox. Gostaria de saber como faço para realizar esse mesmo procedimento com uma imagem?

    Estou fazendo assim, mas so vai os text e a imagem não da certo.

     ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
                txtData.Value = DateTime.Parse(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());
                txtNome.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
                txtCpf.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
                txtTel.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
                cbnVisita.Text = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
                pictureBox2.Image = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString();

    sexta-feira, 30 de setembro de 2016 00:38

Respostas

  • Olha vou dar uma opinião não armazena imagens dentro do Banco de Dados existem controvérsias sobre isso mas você poderia armazenar essas imagens dentro de um diretorio no servidor e na sua aplicação você teria um parametro com o caminho dessas imagens e no seu Banco de Dados você teria um campo na tabela do tipo varchar onde você armazenaria somente o nome do arquivo de imagem + a extensão do arquivo, agora podem dizer a mas e o backup eu faço o backup do Banco de Dados e tenho o backup das imagens também bom dai é o que disse são as opções eu prefiro imagens fora do Banco de Dados ficamos com um Banco de Dados mais enxuto.

    Agora para seu caso você teria que utilizar a propriedade LOAD do Picturebox para carregar a imagem pois na propriedade LOAD você passa o caminho da sua imagem por exemplo C:\sistema\imagens\img.jpg
    Ate para esses casos seria mais interessante a imagem dentro do diretorio

    Abaixo temos um solução encontrada aqui no Forum mesmo espero que ajuda
    https://social.msdn.microsoft.com/Forums/pt-BR/f5b54369-5b00-4ead-9c97-40b3b0a0f8da/exibir-imagem-bd-em-picturebox-c?forum=vscsharppt


    Junior

    sexta-feira, 30 de setembro de 2016 10:22

Todas as Respostas

  • Olha vou dar uma opinião não armazena imagens dentro do Banco de Dados existem controvérsias sobre isso mas você poderia armazenar essas imagens dentro de um diretorio no servidor e na sua aplicação você teria um parametro com o caminho dessas imagens e no seu Banco de Dados você teria um campo na tabela do tipo varchar onde você armazenaria somente o nome do arquivo de imagem + a extensão do arquivo, agora podem dizer a mas e o backup eu faço o backup do Banco de Dados e tenho o backup das imagens também bom dai é o que disse são as opções eu prefiro imagens fora do Banco de Dados ficamos com um Banco de Dados mais enxuto.

    Agora para seu caso você teria que utilizar a propriedade LOAD do Picturebox para carregar a imagem pois na propriedade LOAD você passa o caminho da sua imagem por exemplo C:\sistema\imagens\img.jpg
    Ate para esses casos seria mais interessante a imagem dentro do diretorio

    Abaixo temos um solução encontrada aqui no Forum mesmo espero que ajuda
    https://social.msdn.microsoft.com/Forums/pt-BR/f5b54369-5b00-4ead-9c97-40b3b0a0f8da/exibir-imagem-bd-em-picturebox-c?forum=vscsharppt


    Junior

    sexta-feira, 30 de setembro de 2016 10:22
  • Como faço para converter essa liha? banco mysql Blob

      pictureBox2.Image =(Image) dataGridView1.Rows[e.RowIndex].Cells[6].Value;



    • Editado SouthNew sexta-feira, 30 de setembro de 2016 12:37
    sexta-feira, 30 de setembro de 2016 12:27
  • Olha para converter essa linha eu desconheço uma forma parecida com essa que você colocou no POST mas se você criar uma rotina ou seja um metodo que pegue o registro do Banco de Dados que contem a imagem e jogue para aquele codigo que te passei para converter a imagem da base para binario usando o seu ID da grid para buscar o regitros você consegue exibir a imagem dentro do picture

    Junior

    sexta-feira, 30 de setembro de 2016 18:53