C# ile tüm veritabanı işlemlerinde, öncelikle yönetilecek veritabanına bağlantı sağlanmalıdır. Veritabanı bağlantısı, veritabanına özgü bazı bağlantı yöntemlerinin, hesap bilgilerinin, veritabanı sürücüsünün özelliklerine göre değişen bir bağlantı cümlesi yardımıyla sağlanır.
Veritabanı bağlantı cümlesinin nasıl elde edileceği Veritabanı Bağlantı Cümlesi (ConnectionString) Oluşturma yazısında ayrıntılı olarak anlatılmıştır. Bağlantı cümlesini aldıktan sonra bunu cumle isimli bir string değişkende tutalım.
1 | string cumle = "..."; |
Veritabanında bulunan bir veya daha fazla tablodaki kayıtları listeleyebilmek için öncelikle veritabanına bağlantının sağlanması gerekmektedir. Veritabanı bağlantısı, OleDbConnection nesnesinin kullanılmasıyla sağlanmaktadır. Bu yazıda her ne kadar OleDb nesneleri anlatılsa da SqlClient nesneleri de benzer şekilde kullanılmaktadır.
1 | OleDbConnection baglanti = new OleDbConnection(cumle); |
Ardından yazacağımız SELECT komutu için bir nesne oluşturmamız gerekir. Bu nesneyi de OleDbDataAdapter sınıfından türetiyoruz. Bu sınıfın kurucu metodunda aşırı yüklenmiştir. Bizim kullanım şeklimiz aşağıdadır.
1 | OleDbDataAdapter komut = new OleDbDataAdapter("SELECT * FROM tablo_adı", baglanti); |
Türetilen komut nesnesine 2 parametre gönderilmiştir. Bunlarda ilki SELECT içeren SQL komutu, diğeri de az önce oluşturulan baglanti nesnesidir. OleDbDataAdaptor dışındaki nesnelerde baglanti.Open() diyerek bağlantıyı açma zorunluluğumuz vardır, ancak OleDbDataAdaptor nesnesi bağlantıyı kendiliğinden açar.
Buradan dönecek veri bir tablo olarak getirilecektir. Veritabanından döndürülen tablo tipindeki veriyi taşıyabilecek bir nesneye ihtiyacımız vardır. Bunun için DataTable sınıfından türetilen tablo nesnesini kullanabiliriz.
1 | DataTable tablo = new DataTable(); |
Bu tablo, ilk oluşturulduğunda boştur. komut nesnesi aracılığı ile tablo nesnesinin içi doldurulur.
1 | komut.Fill(tablo); |
Böylece veriler kullanıma hazır hale getirildi ancak hala kullanıcıya yansıtılacak bir durumda değil. Kullanıcıya gelen verinin içeriği bir DataGridView nesnesi aracılığıyla olabilir. Windows formunuzun üzerine bir DataGridView nesnesini sürükleyip bıraktığınızı ve dataGridView1 isminde bir nesnenin hazır olduğunu düşünelim. dataGridView1 nesnesinin DataSource özelliğinin içi doldurulan tablo nesnesini işaret etmesini sağlarsak veriler görüntülenecektir. (DataTable bir referans tip olduğu için “aktarmak” yerine “işaret etmek, göstermek” deyimi daha mantıklıdır.)
1 | dataGridView1.DataSource = tablo; |
Eğer WPF formu kullanıyorsanız DataGrid nesnesi oluşturarak bu nesnenin ItemsSource özelliğine tablo nesnesi gösterilir. Benzer şekilde bu nesnenin AutoGenerateColumns özelliği True olarak ayarlanmalıdır.
Özetle, bir Windows formu için yazdığımız komutları bir araya getirecek olursak aşağıdaki satırlar elde edilir:
1 2 3 4 5 6 | string cumle = "elde edilen bağlantı cümlesi"; OleDbConnection baglanti = new OleDbConnection(cumle); OleDbDataAdapter komut = new OleDbDataAdapter("SELECT * FROM tablo_adı", baglanti); DataTable tablo = new DataTable(); komut.Fill(tablo); dataGridView1.DataSource = tablo; |