Tam Sürümünü Görmek İçin : Veritabanından Çekilen Resmin Konumu?
ofaruk_k
23/11/2007, 22:23
Merhaba arkadaşlar. Ms-Sql 2005 Veritabanından tablodaki resimi aşağıdaki kod ile Asp.Net sayfama yansıtabiliyorum
------------
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand command = new SqlCommand("select * from ogr1 WHERE (ogr_id = '4056')",baglan);
baglan.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read()) //yup we found our image
{
// Response.ContentType = dr["adi"].ToString();
Response.BinaryWrite((byte[])dr["resim"]);
}
baglan.Close();
}
----------
Resimi yansıtabiliyorum fakat resim sayfanın sol üst köşesinde bi yerde çıkıyor. Acaba çektiğimiz resmi, herhangi bir panele vs. yansıtabilir miyiz?
ofaruk_k
24/11/2007, 23:11
Merhaba arkadaşlar. Image.aspx.cs dosyasının Page_Load olayına aynı kodu yazdım.
SqlCommand command = new SqlCommand("select * from ogr1 WHERE (ogr_id = '" + Session["ogr_id"].ToString() + "')", baglan);
baglan.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read()) //yup we found our image
{
// Response.ContentType = dr["adi"].ToString();
Response.BinaryWrite((byte[])dr["resim"]);
}
baglan.Close();
Farklı olarak Session["ogr_id"] kullandım. Default.aspx.cs dosyasına da Butonun tıklanma olayına şöyle dedim:
Session["ogr_id"] = TextBox70.Text;
Image11.ImageUrl = "Image.aspx";
Bu şekilde dediğim zaman, TextBox'taki ogr_id'ye göre istediğim resmi Image'e aktarmış oluyorum. Fakat bu işlemi sadece bir kere (sayfa ilk açıldığında ) yapabiliyorum. TextBox'a başka bir öğrencinikn ID'sini yazıp butona tıkladığımda Image değişmiyor, fakat sayfayı (F5 ile) yenilediğimde, kod çalışmış oluyor. Acaba Image.aspx dosyasının Response olayında mı sorun var, yoksa Session değerlerinde mi ?
Not:Asp.Net 2.0 ve sayfada ajax kullanılıyor.
Session olaylarından önce bu olay çalışıyor olabilir. Bende de iç sayfanın Page_Load ının master page in Page_Load ından önce çalışmasıyla ilgili bir problem var.
Request.QueryString["ogr_id"] neden kullanmıyorsun?
Bir de sql sorgunu parametreli yap ki textbox dan girilen değer ile injection yemeyesin.
ofaruk_k
25/11/2007, 09:50
İlginiz için çok teşekkürler fakat demek istediğinizi tam olarak anlayamadım :(, Peki Session ve Page_Load sorununu nasıl çözebilirim? Dışarıdan ancak benim istediğim kodu çalıştırmasını istediğimden QueryString kullanmadım, Ayrıca zaten parametre kullanıyordum, bir de böyle deneyeyim dedim ve foruma da bu şekilde attım.
ofaruk_k
25/11/2007, 10:05
Eğer Page_Load olayında sorun varsa,Image.aspx dosyasının Page_Load olayına değil de, ana sayfadaki butonun tıklanma olayıyla beraber Image.aspx'de resim gösterilebilir mi?Yani bir method oluşturup bunu diğer sayfalarda kullanabilir miyiz?
ofaruk_k
25/11/2007, 17:55
Ya aslında kodda sorun yokmuş, aynı kodları yeni bir sayfa oluşturup oraya yazdım sorun çıkmadan gösteriyor tekrar tekrar. Fakat sayfaya ScriptManager ile Update panel koydum ve butonu, textbox ve image bileşenlerini update panel'in içine yerleştirince aynı sorun tekrar çıktı. Yani sadece bir defa çalıştırıyor kodu.Ajax desteğini kullanarak yapamaz mıyız bu işlemi ? Tüm sayfa AJAX kullanıyor çünkü.
QueryString olarak denesene.
Image.aspx?ogr_id=falanfilan
Volkan Uzun
26/11/2007, 08:34
bunu soyle yapman gerekiyor;
image i veritabanindan alip request.write ile sayfaya yazdiran kodu, bir aspx sayfasi yap, bu aspx sayfasi page_loadda aldigi parametre ile request write yapsin, diyelim ki sayfa adini resimgoster.aspx yaptin
resmi gosterecek sayfada istedigin yere ( mesela panel icine vs vs ) bir img koy, src icine ise soyle bisi yaz
<img src='resimgoster.aspx?id=5"....
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.