2009-08-12 14 views
6

Veritabanımda, görüntüleri "resim" veri türünde saklıyorum, ikili kod olarak gösteriliyor. Şimdi tüm görüntüleri bir sütundan almak ve C# ile asp.net sayfasında göstermeye çalışıyorum.Linq to SQL ile veri tabanından bir görüntüyü alma

Ama İkili Resmi dönüştürülemez çünkü bu işe yaramazsa:

databaseDataContext db = new databaseDataContext(); 

    var images = from Picture p in db.Pictures 
       select p.pictureThumb; 

sonra bu kullanırlar. Bunu Googled ve Byte'a ve sonra da görüntüye vermem gerektiğini öğrendim. Bunun nasıl yapılacağına dair örnekler bulamıyorum. yine sadece MemoryStream, ama çeşitli nedenlerle, görüntünün elden emin olabilirim - Image.FromStream akımının sahipliğini alır

databaseDataContext db = new databaseDataContext(); 

var images = from p in db.Pictures 
      select Image.FromStream(new MemoryStream(p.pictureThumb.ToArray()); 
foreach (Image image in images) 
{ 
    galleryImages.Controls.Add(image); 
} 

Not olun:

cevap

11

Bu yapmalı.


DÜZENLEME: Ah ... Bunun ASP.NET için olduğunu fark etmemiştim. Bu, işleri daha da zorlaştırıyor - çünkü HTML URL'ler içerecek ve daha sonra verileri daha sonra getirmeniz gerekecek.

Bir resmin kimliği var mı? Öyleyse, gerçek veriler yerine getirin ve daha sonra kimliğe dayalı herhangi bir küçük resmi (veritabanından getirerek ve yalnızca uygun bir içerik türüyle sunarak) sunabilen bir URL ayarlayın.

+0

Teşekkürler, bu çok fazla sorun yaşadı. Döngü ile ilgili bazı sorunlarım var, "En iyi aşırı yüklenmiş yöntem eşleştirmesi [...] bazı geçersiz argümanlara sahip". galleryImages bir PlaceHolder'ı ifade eder, ancak diğer olasılıklar (Literal, Resim, vb.) aynı hatayı verir. PLUS the Add (resim) bana "System.Drawing.Image 'kaynağından' System.Web.UI.Control '' 'a dönüştürülemiyor. Bahse girerim oldukça bariz bir şekilde .NET ile çok tecrübesizim: o – Kablam

+1

Bunu yaptı :) Veri tabanından pictureID'i al, sonra gerçek imagedata'yı çıkarmak için getImage.aspx.cs 'i kullan. ContentType = "image/jpeg" kullanın; ve BinaryWrite. Teşekkürler Jon! – Kablam

+0

Cool - "çok deneyimsiz" olduğunu iddia eden biri için gerçekten hızlı bir dönüş süresiydi :) –