2010-08-09 13 views
7

PictureBox denetimi var Bir görüntüyü görüntülemek istiyorum. Görüntülerimi MS Access veritabanında bu veri türü ile kaydettim: OLE Object. Tekrar görüntülemeyi zor buluyorum. Lütfen koduma bir göz atın ve bunun için bir çözüm tasarlayabilir misiniz? Ben aldım bu Exception:System.Byte [] öğesini Image'ye nasıl dönüştürebilirim? (C# pencere formları)

byte[] data = (byte[]) dt.Rows[0]["IMAGE"]; 
MemoryStream ms = new MemoryStream(data); 
pictureBox1.Image = Image.FromStream(ms); 

EDIT:

OleDbCommand cmd = new OleDbCommand("SELECT IMAGE FROM IMAGES WHERE ID = 1", myConn)); 
      cmd.CommandType = CommandType.Text; 
      OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
      DataTable dt = new DataTable("dt"); 
      da.Fill(dt); 

      if (dt != null) 
      {    
       pictureBox1.Image = (Image)dt.Rows[0]["IMAGE"]; 
      } 

cevap

28

basit yolu MemoryStream kullanıp Image.FromStream çağırmaktır; Burada

Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'. 

kodum var Karşındaki çalıştırırsanız Hans tarafından tanımlanan problem, temel olarak bu başlığı çıkarmanız gerekiyor. , ürününe sahip olduğunuzda, yalnızca görüntü verileri içeren bir bayt dizisine sahip olursanız yukarıdaki kodu kullanın.

+0

çok teşekkürler ...:) – yonan2236

+1

Çalışmıyor, Access görüntü verisine bir başlık ekler. –

+0

Ama ben PictureBox Seçeneği iyi değil mi? lütfen yardım – SanamShaikh

İlgili konular