Windows Form

C# DataReader ile Veritabanından Veri Çekme

DataReader nesnesi, veri deposundan verilere erişmek için kullanılır ve ADO.NET’in sağladığı iki mekanizmadan biridir. Hatırlayacağımız gibi DataReader nesnesi, veri kaynağıyla bağlı kalırken veri deposundan veri akışı olarak veri almak için salt okunur, yalnızca ileriye yönelik, yüksek performanslı bir mekanizma sağlar. DataReader kısıtlıdır ancak oldukça optimize edilmiştir. .NET framework, SQL Server (SqlDataReader)  yerel OLEDB sağlayıcıları (Access) ve yerel ODBC sürücüleri için veri sağlayıcıları sağlar,

  • SqlDataReader
  • OleDbDataReader
  • OdbcDataReader

 

Bir veritabanından  salt okunur bir veri akışı almak için ADO.NET DataReader‘ı kullanabilirsiniz. DataReader’ı kullanmak uygulama performansını artırabilir ve sistem yükünü azaltabilir, çünkü bir seferde yalnızca bir satır bellekte kalır. Command nesnesinin bir örneğini oluşturduktan sonra, aşağıdaki örnekte gösterildiği gibi, bir veri kaynağından satırları almak için Command.ExecuteReader‘ı çağırarak bir DataReader oluşturursunuz.

Şimdi örneğimize geçelim. Örneğimizde Access veritabanı kullanacağımız için OleDbDataReader sınıfından faydalanacağız.

Personel isimli veritabanında bulunan kisiler tablosunda bulunan “kisi_ad” alanındaki verileri listbox1’e “kisi_soyad” alanındaki verileri listbox2’ye aktaralım.

İlk iş olarak veri tabanımızı hazırlayalım.”personel” isimli veritabanımızı projemizin “Debug” klasörü altında oluşturup kisiler isimli bir tabloyu aşağıdaki şekilde oluşturalım.

datareader_tablo

Daha sonra içerisine kontrol amaçlı bir kaç adet veri girelim.

datareader_veri

Veritabanıyla işimiz tamam. Şimdi de formumuzu aşağıdaki gibi tasarlayalım.

datareader_formtasarim

Kodları yazmaya başlayalım.

İlk önce Access’e bağlanmak için gereken System.Data.Oledb namespace’ini import edelim.

Daha sonra diğer kodları aşağıdaki şekilde oluşturalım.

Programımızı çalıştırdığımızda çıkan sonuç aşağıdaki gibi olacaktır.

Ekran Çıktısı:

datareader_form

 

About the author

admin

Add Comment

Click here to post a comment

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.