Veritabından Resim Göstermek
9 Ağustos Cumartesi, 2008 | Asp.net C# Ado.Net Sql /*Yorumlar (2)*/
Öğrencilerimin en sık sorduğu sorulardan biri de, veritabanında depolanmış resimleri web sayfasında nasıl gösterildiğidir. Internette bu konu hakkında zilyon tane yazı olmasına karşın bir tane yazma gereği hissettim.
Öncelikle anlaşılması gereken konu, html sayfalarında resim göstermenin ilk koşulu resmin fiziksel yolunun kontrole yada etikettage aktarılmasıdır.
Örneğin;
![]()
Diğer taraftan baktığımızda ki bu taraf veritabanı tarafıdır, resim gibi içeriklerin hangi tip veri alanında saklanacağıdır.
C# ile yazılım geliştiryorsanız resim yada bir dosya serileştiğinde (yani veritabına yazıldığında) byte dizisinden (byte[]) ibaret olacaktır. Bu durumda en uygun alan tipi varbinarybyte[] olsa iyi olur. :)
Kaçınılması gereken davranışlar.
![]()
yada
![]()
hiç olmadı :)
![]()
Peki yapılması gereken nedir? Veritabınından okunan byte dizisini resim formatında dışarı aktaracak (response) bir dosya (aspx,ashx) oluşturmak ve oluşan dosyanın yolunu resmi gösterecek kontrol yada etikete atamaktır.

Örnek tabloda gösterildiği gibi resim UrunResim alanında varbinarybyte[] olarak saklanıyor.

Resmi oluşturacak resim.aspx sayfasına gönderilen parametre değeri ile veritabanında basit bir sorgu yapılarak ve sonucu byte dizisi olarak elde edilir.

Son olarak ise sayfa çıktısının resim olacağını işaret eder ve çıktıyı BinaryWriter metotu ile oluştururuz.