Personel Kayıt Uygulaması Bölüm 4 Kontrollere Veri Aktarımı, Kontrollerin Temizlenmesi ve Listelenmesi

Personel Kayıt Uygulaması Bölüm 4 Kontrollere Veri Aktarımı, Kontrollerin Temizlenmesi ve Listelenmesi yazımıza devam etmeden önce bir önceki yazıyı gözden geçiriniz. Bunun için aşağıdkai linki kullanabilirsiniz. Eğer bitirdi iseniz devam edebilirsiniz.

Bu yazımda ele alacağım konular;

  • DataGridView kontrolümde herhangi bir veri satırına çift tıklayınca o satırdaki verilerin form üzerinde ilgili kontroller üzerine gelmesi;
  • Listele butonuma basınca Listele metodumun çalışması için ilgili metodun yazılması,
  • Temizle butonuna basılınca kontrollerin sıfırlanması yani boş değer atılması.
DataGridView kontrolümde herhangi bir veri satırına çift tıklayınca o satırdaki verilerin form üzerinde ilgili kontroller üzerine gelmesi

İlk madde ile başlayalım. DataGridView kontrolümü form üzerinde seçtim. Özellikle alanında Events kımsında CellDoubleClick eventi üzerinde çift tıklayarak bu olayda aşağıdaki kodları yazıyorum.

dataGridView1_CellDoubleClick eventi kodları:

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            //Seçilen satırın indeks numarasını değişkenime alıyorum.
            int secilen = dataGridView1.SelectedCells[0].RowIndex;

            //Uygulamam içinde radiobutton ile Kadın Erkek cinsiyet seçimi yapıldığı için buraya özel bir de string tipinde değişken tanımladım.
            string cinsiyetDeger = dataGridView1.Rows[secilen].Cells[3].Value.ToString();

            //Seçilen satırdaki her bir kolonun (cell) değerini ilgili kontrollerime aktarıyorum.
            txtID.Text = dataGridView1.Rows[secilen].Cells[0].Value.ToString();
            txtAd.Text = dataGridView1.Rows[secilen].Cells[1].Value.ToString();
            txtSoyad.Text = dataGridView1.Rows[secilen].Cells[2].Value.ToString();

            //radiobuttonlarda da işaretleme yapmak için seçilen kolonumdaki True ve False durumuna göre cinsiyetDeger değişkenime atama yapıyorum. Eğer CinsiyetDeger True oluyor ise rdbErkek radiobutton checked özelliğini True, eğer CinsiyetDeger False oluyor ise rdbKadin radiobutton checked özelliğimi False yapıyorum.
            if (cinsiyetDeger == "True")
            {
                rdbErkek.Checked = true;
            }
            else
            {
                rdbKadin.Checked = true;
            }

            //Diğer kontrollere de veri atama işlemimi yapıyorum.
            cmbSehir.Text = dataGridView1.Rows[secilen].Cells[4].Value.ToString();
            txtMaas.Text = dataGridView1.Rows[secilen].Cells[5].Value.ToString();
            txtUnvan.Text = dataGridView1.Rows[secilen].Cells[6].Value.ToString();

            
        }

Öncelikle burada int tipinde Secilen adında bir değişken oluşturdum. Bu değişkene datagridview üzerinde seçilen satırın indeks numarasına ilişkin veri gelecek.

Ek olarak, cinsiyetDeger adında string bir değişken tanımladım. Çünkü, Uygulamam içinde radiobutton ile Kadın Erkek cinsiyet seçimi yapıyorum. Bunları işaretleyebilmek için bu değişkenim lazım olacak.

Seçilen satırdaki her bir kolonun (cell) değerini ilgili kontrollerime aktarıyorum. txtID, txtAd, txtSoyad, cmbSehir, txtMaas ve txtUnvan gibi. Bir tek radiobutton olayım farklı. Orayı da şu şekilde yapıyorum;

Radiobuttonlarda da işaretleme yapmak için seçilen kolonumdaki True ve False durumuna göre cinsiyetDeger değişkenime atama yapıyorum. Eğer CinsiyetDeger True oluyor ise rdbErkek radiobutton checked özelliğini True, eğer CinsiyetDeger False oluyor ise rdbKadin radiobutton checked özelliğimi False yapıyorum.

Böylelikle 1. İşlemim tamam. Sonuç aşağıdaki gibi;

Personel Kayıt Uygulaması Bölüm 4 Kontrollere Veri Aktarımı, Kontrollerin Temizlenmesi ve Listelenmesi

1 numaralı satıra çift tıklayınca kontrollerime veriler gidiyor artık 😊

Gelelim 2 nolu adıma.

Listele butonuma basınca Listele metodumun çalışması için ilgili metodun yazılması

Listele butonuma çift tıklıyorum. Aşağıdaki kodları yazıyorum.

private void btnListele_Click(object sender, EventArgs e)
        {
            this.personelTableAdapter.Fill(this.personelBilgiDataSet1.Personel);
        }

Burada aşağıdaki görselde görüleceği üzere DataGridView ekleyince 3 tane araçda gelmişti, bu araçları kullanarak TableAdapter, DataSet gibi ilgili kodu yazdım. Böylelikle Listele butonuna basınca verilerim bir önceki görselde olduğu gibi geliyor.

Personel Kayıt Uygulaması Bölüm 4 Kontrollere Veri Aktarımı, Kontrollerin Temizlenmesi ve Listelenmesi

Şimdi bir durum daha var, kişi veri kaydettikten sonra, veri güncelledikten sonra, veri sildikten sonra listenin otomatik yenilenmesi gerek. Bunu da yapalım. Bunun için, Global alanda  aşağıdaki şekilde metodumu yazacağım. Yine Listele butonundaki kodu yazsam yeterli, çünkü aynı işlem. Sadece metot içine alıyorum.

void Listele()
        {
            this.personelTableAdapter.Fill(this.personelBilgiDataSet1.Personel);
        }

Bu işlem de bu kadar, artık gerektiği yerde bu metodu çağırabilirim.

Geldik son adıma.

Temizle butonuna basılınca kontrollerin sıfırlanması yani boş değer atılması

Verileri zaman zaman silmek gerek. Kullanıcı bir veriyi yazdığında vazgeçebilir, veya kaydetme, silme, güncelleme sonrası kontroller üzerinde veri kalabilir. Çok güzel bir görüntü değil bu tabi. Şimdi Temizleme işlemlerini yapalım.

Şimdi bir durum daha var, kişi veri kaydettikten sonra, veri güncelledikten sonra, veri sildikten sonra kontrollerin sıfırlanması gerek. Dolayısı ile temizle için bir metot oluşturalım hem Temizle butonunda kullanalım bunu hem de ileride gerektiği yerde kullanabilelim.  Bunu da yapalım. Bunun için, Global alanda  aşağıdaki şekilde metodumu yazacağım.

//Kontrollerimi sıfırlıyorum
        void Temizle()
        {
            txtID.Text = "";
            txtAd.Text = "";
            txtSoyad.Text = "";
            cmbSehir.SelectedItem = null;            
            txtMaas.Text = "";
            txtUnvan.Text = "";
            rdbErkek.Checked = false;
            rdbKadin.Checked = false;
            txtAd.Focus();
        }

Görüleceği üzere kontrolleri sıfırlamak için “” değerini atamam yeterli. Combobox için SelectedItem özelliğine null atama işlemi yapıyoruz. Radiobuttonlar için de checked özelliklerini false yapıyoruz. İmleci de txtAd kontrolüme focusluyorum.

Şimdilik bu kadar 😊

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir