SqlDataReader Sınıfı ve Read() Metodu

Bildiğiniz gibi SqlDataReader sınıfı ile kolay ve hızlı bir şekilde istenen tablo ileriye doğru okuma yapılıp tablonun içeriği çekilebilmektedir. Read() metodu her seferinde tablodan bir satırı okumaktadır. SqlDataReader nesnesine SqlCommand nesnesi sayesinde aktarılmış olan bütün kayıtlar okunduğunda Read() metodu geriye False değerini göndermektedir. Aşağıda verilen kodun hemen hemen aynısını birçok kaynakta görmüş olmalısınız.

SqlDataReader Okuyucu;
SqlCommand Komut;
string Komut_metni;
sqlConnection1.Open();
Komut_metni = "SELECT * From filmler";
Komut = new SqlCommand(Komut_metni, sqlConnection1);
Okuyucu = Komut.ExecuteReader();
while (Okuyucu.Read())
{

   listBox1.Items.Add(Okuyucu.GetString(0));

}

 

Bugünlerde C# kitabımın 2. cildine son şeklini verirken okurların Read() metodu üzerinde düşünmelerini sağlamak 2. bir sqlCommand nesnesi hazırlayıp ilgili tablodaki toplam kayıt sayısını öğrenip Read() metodunu for döngüsü içinde kullandım. Bu kod daha uzun olsa bile SqlDataReader nesnesi hakkında henüz bilgi edinen programcı için daha anlaşılırdır.

 

SqlCommand Komut1;
string Komut_str;
Komut_str = "SELECT COUNT(*) From filmler";
Komut1 = new SqlCommand(Komut_str, Baglanti);

object Str = Komut1.ExecuteScalar();
int sayi = (int)Str;

Okuyucu = Komut.ExecuteReader();
for (int i = 0; i< sayi-1; i++)
{
   Okuyucu.Read();
   listBox1.Items.Add(Okuyucu.GetString(0));
}
Okuyucu.Close();