Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/09/2010, 14:07
Avatar de gedarufi
gedarufi
 
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: mostrar foto desde sql a un picturebox

Yo lo que hago es escribir la variable Byte[] donde esta la imagen en un MemoryStream y luego ese Stream lo leo en un Objeto Bitmap.

Te pongo un ejemplo que tengo a mano, se encarga de descomprimir un archivo que esta en la DB

Código C#:
Ver original
  1. public virtual System.IO.MemoryStream GetLayout()
  2.         {
  3.             System.IO.MemoryStream sw = new System.IO.MemoryStream();
  4.  
  5.             using (System.IO.MemoryStream ms = new System.IO.MemoryStream(this.Plantilla))
  6.             {
  7.                 using (System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
  8.                 {
  9.                     int buffer = 1000000;
  10.                     int offset = 0;
  11.                     int totalBytesRead = 0;
  12.                     Byte[] data = new Byte[buffer];
  13.                     bool ft = true;
  14.  
  15.                     while (true)
  16.                     {
  17.                         int bytesRead = gzipStream.Read(data, offset, buffer);
  18.  
  19.                         if (ft == true && bytesRead == 0)
  20.                         {
  21.                             bytesRead = gzipStream.Read(data, offset, buffer);
  22.                         }
  23.  
  24.                         Byte[] tempData = null;
  25.  
  26.                         ft = false;
  27.  
  28.                         if (bytesRead == 0)
  29.                         {
  30.                             tempData = data;
  31.                             data = new Byte[totalBytesRead];
  32.  
  33.                             for (int i = 0; i < totalBytesRead; i++)
  34.                             {
  35.                                 data[i] = tempData[i];
  36.                             }
  37.  
  38.                             break;
  39.                         }
  40.  
  41.                         tempData = data;
  42.                         data = new Byte[data.Length + bytesRead];
  43.  
  44.                         tempData.CopyTo(data, 0);
  45.  
  46.                         offset += bytesRead;
  47.                         totalBytesRead += bytesRead;
  48.                     }
  49.  
  50.                     sw.Write(data, 0, data.Length);
  51.  
  52.                     return sw;                        
  53.                 }
  54.             }
  55.         }

este metodo retorna una variable que luego la puedes usar con la clase Bitmap.

Saludos