İpucu : SQL’den kayıtları karışık rastgele getirmek

Az önce bir öğrencimin sorusu üzerine hatırladığım küçük bir ipucu :
Select * from Tablo ORDER BY newID()

Reklamlar

SQL’den BLOB Data (Resim) Okumak

Pek çok programcı bunu veri tabanına gömülü resimleri elde etme amacı ile ister. Geçenlerde bir arkadaşım veri tabanındaki resmi alıp ASP.NET’teki Image kontrolünde gösteremediğinden şikayet etti. Zira image kontrolü sadece fiziksel bir dosya path’i ile çalışıyor. Ben kendisine aşağıdaki gibi bir çözüm önerdim. Ve durumu blogumda aynı sıkıntıyı yaşayan tüm kişilere bir çözüm olması amacı ile pubs veri tabanı ile örnekledim. Aslında çözüm basit; resmi bir stream biçiminde okuyup bir dosyaya kaydetmek ve sonra bunu image konrolünde ya da img tag’ında göstermek. Ancak yine de veri tabanında resimlerin bu şekilde tutulmasını pek tavsiye etmem.
 
SqlConnection cnn = new SqlConnection(“server=.; database=pubs; integrated security=true”);

cnn.Open();

SqlCommand cmd = cnn.CreateCommand();

cmd.CommandText = “Select logo, pub_id from pub_info”;

SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess ); string html = “”;

string fname = “”;

while (dr.Read())

{

      System.Drawing.Image img = System.Drawing.Image.FromStream(dr.GetSqlBytes(0).Stream);

      fname = dr.GetString(1) + “.jpg”;

      img.Save(Server.MapPath(fname)); 

      html += String.Format(“<img src='{0}’/><br>” , fname); }

Response.Write(html);