Bir ya da birden fazla satırların sonuç olarak döneceği sorgularda SqlCommand' ın ExecuteReader özelliği kullanılmaktadır. ExecuteReader geriye SqlDataReader tipinde veri döndürmektedir.
SqlDataReader, sadece okunabilir olarak kullanılmaktadır. Satır satır okuma işlemi yapılmaktadır. SqlDataReader kullanımı boyunca veritabanı bağlantısı açık olacaktır. Çünkü 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.
private void btnDataReader_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(BaglantiAdresi); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "SELECT Adi FROM Kisiler"; con.Open(); SqlDataReader dr = cmd.ExecuteReader(); ArrayList Isimler = new ArrayList(); while (dr.Read()) { Isimler.Add(dr["Adi"]); } dr.Close(); con.Close(); }
Okuma işlemi SqlDataReader nesnesinin Read() metodu ile yapılmaktadır. Read() metodu geriye bool türünde değer döndürmektedir. Okunacak satır var ise true, yoksa false değerini döndürmektedir.
Bildiğiniz üzere while döngüsü koşul true olduğu sürece icra edilmektedir. Burada da Read() metodu true değerini aldığı sürece işlem görmeye devam edecektir. İşlem sonunda ise SqlDataReader nesnesi Close() metodu ile kapatılmaktadır.
Başarılar dilerim.