Anasayfa / Yazılım / C# / Öğrenci Otomasyonu Bölüm 5
admin 11 Mayıs 2015	C# Yorum yap 11,200 Views
Kayıt Listeleme için formumuzu tasarlamıştık, şimdi gelelim kodlama aşamasına. Ana formunda yer alan Kayıt Listele butonumun click eventine aşağıdaki kodları yazıyorum. Böylelikle Kayıt Listeleme formumun açılmasını sağlayacağım.
private void btnKayitListele_Click(object sender, EventArgs e)
frmKayitlariListele frm = new frmKayitlariListele();
Şimdi bu form yüklenince veritabanındaki veriler listelenmiş olarak buraya akacak. Bunu yapabilmek içinde formun load olayını kullanacağım. Ben yine kod bloğumda açıklama vereceğim ama ön bir açıklama da yapalım.
Öncelikle veri tabanım ile bağlantı kurmam gerek, bunu yapacağım. Daha sonra OleDbDataAdapter nesnesi ile veritabanından çekilen verileri DataSet içine alacağım. OleDbDataAdapter nesnesi ile birlikte veritabanından çekilen bilgiler DataSet içine kaydedilir. DataSet içine bilgileri kaydedebilmek içinde OleDbDataAdapter nesnesinin Fill metodu kullanılır. Şimdi kodlarımıza geçelim. Bu arada form yeni bir form ve System.Data.OleDb kütüphanesini formuma eklemeyi unutmuyorum. Load olayında kodlarım aşağıdaki gibi:
private void frmKayitlariListele_Load(object sender, EventArgs e)
//Veritabanı bağlantı connection stringimi oluşturuyorum
//Dataset nesnemi oluşturuyorum adını dt verdim.
//adt adında bir OleDbAdapter nesnesi oluşturuyorum
OleDbDataAdapter adt = new OleDbDataAdapter("SELECT OgrenciBilgiler.TC_Kimlik_No, OgrenciBilgiler.AdSoyad, OgrenciNotlar.Vize, OgrenciNotlar.Final, OgrenciNotlar.Ortalama FROM OgrenciBilgiler, OgrenciNotlar WHERE OgrenciBilgiler.TC_Kimlik_No = OgrenciNotlar.TC_Kimlik_No", conn);
//Dt isimli DataSet'imi OgrenciBilgiler tablom ile dolduruyorum.
//DataGridView kontrolümün DataMember özelliğini tabloma eşitliyorum.
dataGridView1.DataMember = "OgrenciBilgiler";
//DataGridView kontrolümün DataSource nesnesini dataset nesneme eşitliyorum.
//adt'i dispose ediyorum ve bağlantımı kapatıyorum
Şimdi gelelim Kayıt Güncelleme işlemlerine. Ana formumda Kayıt Güncellemeye tıklandığında veritabanımdan tüm verilerin listelenmesi ve seçmiş olduğum bir kayıt içinde üzerinde güncelleme yapmayı istiyorum. Öncelikle tasarımı yapalım tabi. Proje adıma sağ tıklayıp add > windows form diyerek yeni bir form ekliyorum, text özelliğini Kayıt Düzenleme, name özelliğini frmKayitDuzenleme verdim. Backcolor özelliğini de Highlight yapıyorum.
Düzenlemek, güncellemek istediğim tablo OgrenciBilgiler tablosundaki veriler. TC Kimlik No, Ad Soyad, Telefon No ve Bölüm Adı için 4 adet label ekleyeceğim. TC kimlik no ve telefon için iki adet masked text box ekleyeceğim. Ad soyad için de bir adet normal text box ekleyeceğim. Bölüm adları içinde bir adet combobox ekleyeceğim. Birde yaptığım değişiklikleri kaydetmek için bir adet buton kullanacğaım. Tabi bir de verileri listeleme işlemi de gerçekleştireceğim için aynı zamanda bir DataGridView’e ihtiyacım olacak. Dolayısı ile yine OleDbDataAdapter ve BindingSource nesnelerine ihtiyacım olacak.
Tasarıma geçelim. Labelleri ekledim herhangi bir isim vermiyorum. Sadece text özelliklerini sırası ile şöyle yapıyorum:
İki adet masked textbox ekliyorum. Bunların da adını msktxtTCKimlikNo ve msktxtTelefon verdim. Şimdi bunların mask özelliklerini belirleyelim. TC Kimlik No için masked text boxımın mask özelliğini Numeric olarak seçiyorum, digit sayısını da 11 yapıyorum, bunun için mask kısmında 11 tane sıfır yazdım.
Telefon için bir masked text box daha ekledim. Adını msktxtTelefon verdim. Mask özelliğini de Phone Number yaptım.
Ad ve Soyad için ise bir adet normal textbox ekliyorum. Adını da txtAdSoyad verdim. Bölüm için de bir adet combobox ekliyorum. Adını da cmbBolum verdim.
Verilerimi listeleyebilmek içinde bir DataGridView ekliyorum. Adını da dgvKayitlar verdim. Tasarımım aşağıdaki gibi oldu.
Şimdi ana formumda yer alan Kayıt Güncelleme butonuna tıkladığımda bu tasarladığım form açılsın, bunun ana formumda yer alan Kayıt Güncelleme butonunun click eventine aşağıdaki kodları yazıyorum:
frmKayitDuzenle frm = new frmKayitDuzenle();
Kullanıcı bu form açıldığında veritabanındaki verileri görebilecek daha sonra seçmiş olduğu veriyi güncelleyebilecek, düzenleyebilecek. Şimdi bu kayıtları listeleyebilmek için bir metot yazalım.
Bu kodları son eklediğim frmKayitDuzenle.cs dosyasına yazıyorum. Öncelikle buraya da using System.Data.OleDb; tanımlıyorum ve kodlamama geçiyorum.
Şimdi bağlantı oluşturmam gerek bu form içinde her noktada bu bağlantımı kullanabilmek için aşağıdaki kodları yazıyorum.
Benim verileri listeleyebilmem için bir dataset nesnesine ihtiyacım var, bu dataseti hem formun load olayında hem de metodumda kullanacağım için bunu da yine form üzerinde global olarak tanımlıyorum.
Şimdi metodumuzu yazabiliriz:
public void VerileriListele()
//OgrenciBilgiler tablosundaki tüm kayıtları çekiyorum
//Bir dataset oluşturuyorum ve bu dataset nesnemi tablom ile dolduruyorum, dataset nesnemin adını dt verdim, tablomun adı da OgrenciBilgiler olsun.
//DataGridView kontrolümün DataMember özelliği ile OgrenciBilgiler tablomu eşitliyorum
//DataGridView kontrolümün DataSource özelliğini de dt nesnesine eşitliyorum
//Bağlantımı kapatıyor ve adaptörü dispose ediyorum, serbest bırakıyorum.
Formum yüklendiğinde datagridview kontrolüm içinde kayıtlarım listelensin istiyorum, dolayısı ile formun load olayına kodlarımı yazmam lazım. Kodları kod bloğum içerisinde zaten açıklayacağım ancak yöntemi de şöyle bir özet geçelim. Veriler üstte yazmış olduğum Veri Listele metodu ile DataGridView kontrolüm içinde listelenecek. Ayrıca DataBinding yardımı ile de OgrenciBilgiler isimli tabloda yer alan TC Kimlik No, Ad Soyad, Telefon gibi bilgilerde ilgili metin kutularına yazılacak. Hemen kodlarımıza geçelim şimdi:
private void frmKayitDuzenle_Load(object sender, EventArgs e)
//Verileri Listeleme metodumu çalıştırıyorum
//OgrenciBilgiler tablosundaki verileri form üzerinde yer alan ilgili kontrollerde görüntüleyeceğim, bunun için DataBinding kullanıyorum.
msktxtTCKimlikNo.DataBindings.Add("Text", dt, "OgrenciBilgiler.TC_Kimlik_No");
txtAdSoyad.DataBindings.Add("Text", dt, "OgrenciBilgiler.AdSoyad");
msktxtTelefon.DataBindings.Add("Text", dt, "OgrenciBilgiler.Telefon");
cmbBolum.DataBindings.Add("Text", dt, "OgrenciBilgiler.Bolum");
Bakın neyin farkına vardım ben bu tasarımımda verileri düzenleyeceğim de, peki ya sonra 🙂 Tabi kaydetmem gerekiyor, bunun için de formuma bir adet buton ekliyorum. Adını da btnGuncelle verdim. Text özelliğinini de güncelle yaptım. Tasarımım şimdi aşağıdaki gibi oldu.
Şimdi değişiklikleri kaydetmek için butonumu ekledim. Bu butonun click olayında neler yapacağım, ona değinelim. Burada değişikliklerin yapılabilmesi yani bununla alakalı ilgili sorgunun kullanılabilmesi için ExecuteNonQuery metodunu kullanacağım. Daha sonra sorguyu dispose edilecek, bağlantı kapatılacak. DataSet nesnemin Clear metodu ile tablomun satırlarını sileceğim. Daha sonra tabi güncelleme bitince aynı zamanda tekrar DataGridView kontrolüm üzerinde yeni verileri görmem gerek, bunun için de yukarıda yazdığım Verileri Listele metodunu çalıştıracağım. O zaman şimdi kodları yazalım bakalım:
//İlgili alanları güncelleyeceğim, bunun için UPDATE komutunu kullanıyorum.
OleDbCommand cmd = new OleDbCommand("UPDATE OgrenciBilgiler SET AdSoyad='" + txtAdSoyad.Text + "', Telefon='" + msktxtTelefon.Text + "', Bolum='" + cmbBolum.Text + "' WHERE TC_Kimlik_No='" + msktxtTCKimlikNo.Text + "'", conn);
//Kayıtların güncellendiğini kullanıcıya bildir.
MessageBox.Show("Veri güncelleme işlemi tamamlanmıştır", "Veri Güncelleme", MessageBoxButtons.OK, MessageBoxIcon.Information);
//sorguyu dispose edip serbest bırakıyorum
// Tablomun satırlarını temizliyorum
//En son güncelleme ile birlikte yeni verileri listeliyorum
Şimdilik bu kadar, projemizin bu aşamasına kadar olan kısmını aşağıdaki linkten indirebilirsiniz.
Öğrenci Otomasyonu 726.18 KB
c# öğrenci otomasyonu csharp öğrenci otomasyonu DataSet not otomasyonu öğrenci otomasyonu okul otomasyonu oledbdataadapter veri listeleme	2015-05-11
Tags c# öğrenci otomasyonu csharp öğrenci otomasyonu DataSet not otomasyonu öğrenci otomasyonu okul otomasyonu oledbdataadapter veri listeleme
Previous Öğrenci Otomasyonu Bölüm 4
Next Ankastre Fırın İle Mekandan Tasarruf Edin