SENDE YAZ , FARKIN OLSUN...

26 Mayıs 2010 Çarşamba

SqlDataReader Kullanımı



Selamlar ;
Bazen tabloları hazır bir şekilde veri tabanından alıp , olduğu gibi DataGridView içerisine yerleştirmeye çalışırız , bu tip işlemleri SqlDataAdapter ve DataSet kullanarak çok rahat birşekilde gerçekleştirebiliriz.Ama bu yöntemle , doldurduğumuz DataGridView Kolonları(dikey) veri tabanındaki tuple (Aynı Türden Veriler Demeti) isimleriyle Data Grid'e yerleşirler , yada bazen bütün tuple ları DataGridView e eklemek istemeyiz , sadece bazılarını göstermek isteriz.Bunları aynı mantıkla yapmak mümkün fakat SqlDataReader bu konuda büyük rahatlık sağlıyor.SqlDataReader while döngüsü kullanılarak içerisinde tuple ları tek tek çektiği için , ayrı ayrı yerleştirme imkânı da sağlamış oluyor.Yani 3.kolondaki verilerle 7.kolondaki verilerin yerini çok rahat değiştirebilirsiniz.Sadece DataGridView kullanımında değil tabiki , her türlü veri çekme işleminde çok kolay bir şekilde SqlDataReader kullanabiliriz.Mesela bir combobox 'u , veri tabanından çekeceğim illerin ismiyle doldurmak istedim diyelim.Hemen Reader kullanımını burda kısaca 2 -3 satır göstericem fakat alt tarafda resmi yerleştirdim , oraya tıklayarak Kodları inceleyebilirsiniz.
Örnek:
Tabiki öncelikle SqlConnection oluşturuyoruz
SqlConnection baglantim = new SqlConnection("Data Source=Bilgisayarınızınadı;Initial Catalog=DataBaseAdı;Integrated Security=True");
daha sonra bu baglantıyı açmamız gerek;
baglantim.open();
şimdi de veri tabanına ne yapmak istediğimizi belirticek olan SqlCommand satırını yazalım;
SqlCommand cmd=new SqlCommand("select * from iller",baglantim);

Sonrasında myreader isimli SqlDataReader oluşturuyoruz;
SqlDataReader myreader;
Query imizi içine yazıp yada üst te bir string içerisine yazıp SqlCommand içerisinde o stringi yazıp , cmd.ExecuteNonQuery(); şeklinde çalıştırabiliriz; fakat bu noktada
değişen bir şey var.Direk olarak Query mizi çalıştırmak yerine , myreader isminde oluşturduğumuz SqlDataReader objemize atıyoruz.Yani myreader=cmd.ExecuteReader(); diyoruz.
Daha sonra while(myreader.Read()) şeklinde bir döngü oluşturuyoruz.Yani myreader isimli objemiz , veriler bitene kadar tek tek verileri alıcak.
Bu döngü içerisinde , her seferinde gelen verileri ne yapacagımızı yazıyoruz.Mesela comboBox ımıza veri tabanımızda kayıtlı olan illerimizi yerleştirelim.

while( myreader.Read() )//bitene kadar okuyacak
{
comboBox1.Items.Add(myreader.GetValue(0).ToString());
}



İllerimizi combobox ımıza yerleştirmiş olduk.Yukarıda SqlDataReader'ın degerlerini GetValue fonksiyonu ile aldık.Dikkat ettiyseniz myreader.GetValue(0).ToString() yazdık.Yani iller isimli tablodaki ilk tuple ı aldık.Varsayalım ki ,veri tabanımızda öğrenciler isimli bir tablomuz var.Tablomuzda isim,soyisim,yas,cinsiyet olsun.Biz sadece Soyisim ve yaşı almak istiyoruz; o zaman myreader.GetValue(1) diyerek soyismi, myreader.GetValue(2) diyerek yaşı çekebiliriz.Daha sonra bu aldığımız değerleri while döngüsü içerisinde DataGridView ' e
dataGridView1.Rows.Add(myreader.GetValue(1).ToString(),myreader.GetValue(2).ToString());
diyerek DataGridView ' e sadece Soyisim ve Yaşı eklemiş olduk.


Alt kısımda ki resime tıklayarak , comboBox için kodların Visual Studio üzerinde ki görünümünü büyütebilirsiniz.Bu kodları aynı mantıkla DataGridView kullanımı yada kendi isteğinize göre de modifiye edebilirsiniz.



Umarım Yardımcı Olmuştur. Sende Yaz , Farkın Olsun...

Hiç yorum yok:

Yorum Gönder