Merhaba Arkadaşlar
SqlDataReader kullanımından bahsedeceğiz.SqlDataReader SqlCommand’da yazılan sorguları çalıştırınca sorgunun dönen değerlerini okumaya yarayan ve kullanmamıza yarayan bir araçtır.Bir sorgu yazdık ve SqlCommand’ın ExecuteReader metodu ile dönen değerleri görmek istedik.Burada satır satır okuma işlemini SqlDataReader ile yaparız.SqlDataReader veritabanı ile bağlantılı olarak çalışmaktadır. Okuma işlemi sona erdiğinde SqlDataReader bağlantısınında kapatılması gerekmektedir.
Örnek Giriş Formu Tasarım ve örnek kodlarısqlDatareader
if (txtad.TextLength > 0 && txtsifre.TextLength > 0) // 1. ve 2. textbox’a veri girişi yapılmışmı kontrol ediyoruz.
{
ad = Convert.ToString(txtad.Text);
sifre = Convert.ToString(txtsifre.Text);
cnn.Open(); // Bağlantıyı açıyoruz.
SqlCommand cmd = new SqlCommand(“Select KullaniciID from Kullanici where KullaniciAd=@ad and Sifre=@sifre and aktif=1”, cnn); // K.adı ve şifre veritabanında varmı ona bakıyoruz.
cmd.Parameters.AddWithValue(“@ad”, ad.ToString()); // Sorgumuza parametre veriyoruz.
cmd.Parameters.AddWithValue(“@sifre”, sifre.ToString());//Parametreler sql injection açığınıda kapatıyor.
try
{
SqlDataReader rd = cmd.ExecuteReader(); // SqlCommand’ın ExecuteReader() metodu ile dönen değeri SqlDataReader nesnemize atıyoruz.
while (rd.Read()){ // rd.Read bool bir değer dönderir.true yada false.True ise içeriye giriyor.
kid = rd[0].ToString();//SqlDataReader nesnemizin 0.indisindeki veriyi kid değerine atıyoruz.
MessageBox.Show(“Giriş Başarılı…” , “Bilgi Sayfası”);
frm.id = Convert.ToInt32(kid.ToString()); //Veriyi 2.forma gönderiyoruz.
frm.Show(); //Daha önce instance aldığımız formu aktif ediyoruz.
this.Hide();//1.formu gizliyoruz.
} }
catch (Exception)
{
MessageBox.Show(“Hatalı Giriş Yaptınız”); // Bir hata ve kullanıcı yok ise bu uyarı mesajı veriliyor.
}
}
cnn.Close();
}
Yukarıda kodların yanında açıklamasıyla kodların ne işe yaradığından bahsettim.Yukardaki kodlar ile form1 de databaseden kullanıcıyı sorguluyum eğer bilgileri doğruysa form2 ye geçiş yapıyor aksi halde hata mesajı veriyor.Bu arada ek olarak SqlCommand nesnesine parametre kullanımından örnek verilmiştir.