C# DataReader ile Veritabanından Veri Çekme

Spectrum Artz

Web | Graphics
Ultra Member
Joined
Jul 31, 2019
Topics
443
Messages
524
Reaction score
111
RC Point
0
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.

1using System.Data.OleDb;
Daha sonra diğer kodları aşağıdaki şekilde oluşturalım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace dtreader
{
public partial class Form1 : Form
{
OleDbConnection con;
OleDbCommand cmd;
OleDbDataReader dr;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=personel.accdb");
cmd = new OleDbCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "SELECT * FROM kisiler";
dr = cmd.ExecuteReader();

while (dr.Read())
{
listBox1.Items.Add(dr["kisi_ad"]);
listBox2.Items.Add(dr["kisi_soyad"]);

}
con.Close();
}
Programımızı çalıştırdığımızda çıkan sonuç aşağıdaki gibi olacaktır.
Ekran Çıktısı:
datareader_form
 

Rooster

only business
Legend Member
Joined
Aug 10, 2019
Topics
727
Messages
3,205
Solutions
314
Reaction score
4,997
Location
Milano
RC Point
0
eyw yararlı konu
 
Top