Array
(
)

Ler conteudo de campo tipo image do sql para picturebox

Rodrigo Melo
   - 24 fev 2009

Amigo, alguem poderia me ajudar a trazer uma imagem salva num campo image do sqlserver 2005 para um picturebox na tela?

Ja tentei de tudo, já passei várias horas na net buscando e não achei nada que funcione.

Obrigado.

Rafael Cabral
   - 04 mar 2009

Olá Rodrigo. Tudo bem?

Vc já tentou dessa forma?

#Código

//lê banco de dados.
public byte[] lerImagem(int id)
{
   byte[] imagemRetorno;
   SqlDataReader sqlReader;
   SqlConnection sqlConn = new SqlConnection("MinhaStringConexao");
   SqlCommand sqlCmd = sqlConn.CreateCommand();

   sqlCmd.CommandText = "SELECT CAMPO_IMAGEM FROM TABELA WHERE ID = " + id.ToString();

   try
   {
      sqlConn.Open();

      sqlReader = sqlCmd.ExecuteReader();

      if (sqlReader.Read())
      {
         imagemRetorno = (byte[]) sqlReader["CAMPO_IMAGEM"];
      }
   }
   finally
   {
      sqlReader.Close();
      sqlConn.Close();
      sqlCmd.Dispose();
      sqlReader.Dispose();
      sqlConn.Dispose();
   }

   return imagemRetorno;
}

// Converte array de bytes em imagem.
public Image arrayByteToImage(byte[] imagemBytes)
{
   MemoryStream ms;

   try
   {
      ms = new MemoryStream(imagemBytes, 0, imagemBytes.Length);
      ms.Write(imagemBytes, 0, imagemBytes.Length);
      return Image.FromStream(ms, true);
   }
   finally
   {
      ms.Close();
      ms.Dispose();
   }
}

byte[] imagemBytes = lerImagem(1);
pictureBox1.Image = arrayByteToImage(imagemBytes);


Atenciosamente,

Rafael Cabral

Rodrigo Melo
   - 04 mar 2009

Funcionou 100¬!
Muito obrigado.

Por mim, tópico encerrado e bem respondido.