Visual Studio ile kodlama yaparken sayısal ifadeleri farklı bir renk ile vurgulamayı adet edinmişimdir. Bu şekilde kodu okumak daha pratik gelmiştir bana. Kod örneklerimden de bunu farketmek mümkün. Sql Server 2005 Management Studio ile değil ama 2008 ile aynı vurguyu yapmak mümkün olabiliyor. Nihayet :)
Peki nasıl yapıyorum;
Sql Server 2008 Management Studio uygulamasını açıyoruz. Tools -> Options -> Environment -> Fonts and Colors altında Display items altında ki Number seçeneğini tıklıyoruz. Item foreground özelliğini Purple yada tercih ettiğimiz bir rengi seçiyoruz.

Örnek:

Şöyle bir düşündüğümüzde veritabınında bulunan herhangi bir tablonun verilerini Xml biçiminde dosyaya yazmanın kaç yolu vardır acaba? Sabahları genelde işe erken gelirim, 1.5 saat kadar :).
Oturdum bir kaç örnek yaptım, paylaşıyorum tüm dünya ile. (Özgüvenin tavan yaptığı an)
Aklıma gelen ilk yöntem DataTable nesnesini kullanmak. Bu nesneyi sadece yazmak için kullanmak kaynak tüketimi açısından çok iyi bir seçim olmaz fakat kullanım kolaylığı açısında tercih edilebilir.

Diğer bir yöntem ise henüz Veri Katmanında (DataLayer) iken oracıkta xml formatına dönüştürüp XmlTextWriter ile cayır cayır yazmak.

Son yöntem ise daha önce şu yazıda kullandığım teknik ile (attribute yerine bu sefer node kullandım) XDocument ile manuel olarak xml dosyasını oluşturmak. Sanırım en zoru bu. Yanlış anlaşılmasın benim için kolay da hani ilk yapan için diyorum.

Öğ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 etikete aktarılmasıdır.
Örneğin;
<
img src="/images/bullet.png" alt="Bullet" />
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 ibaret olacaktır.
Bu durumda en uygun alan tipi varbinary olsa iyi olur. :)
Kaçınılması gereken davranışlar.
<
yada
img1.ImageUrl = reader[1].ToString();hiç olmadı :)
img1.ImageUrl = command.ExecuteScalar().ToString();
Yapılması gereken gayet açık. 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 varbinary (byte dizisi) 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.
protected void Page_Load(object sender, EventArgs e)Son olarak ise sayfa çıktısının resim olacağını işaret eder ve çıktıyı BinaryWriter metotu ile oluştururuz.
Ben Xml'i severim de herkes sevmek yada bilmek zorunda değil. Xml ile yaptığım anket uygulamasını Sql ve Ado.Net kullanarak tekrar yaptım.
Veritabanı şeması aynen aşağıdaki gibi;
Uygulamada kullanılan nesne diyagramı;
Uygulamada kullanılan örnek kod;

Uygulama kaynak kodları da burada.
Bildiğiniz gibi verileri Hash'lemek için bir çok yöntem var. Bunlara alternatif olarak Ms Sql Server içindeki HashBytes sistem fonksiyonu ile de yapmak mümkün.
Fonksiyon iki adet parametre alır. İlk parametre Hash algoritmasının adı (MD2, MD4, MD5, SHA, SHA1) diğeri ise Hash'lenecek veri(varchar, nvarchar, varbinary). Fonksiyondan geriye ise varbinary tipinde değer döner (8000 bytes).
Örnek olarak, web uygulaması için basit bir login işlemi yapalım.
Örnek tablo:

Kayıt eklemek için bir procedure.

Son olarakta kullanıcı kontrolü yapan bir procedure.
