Personel Kayıt Uygulaması Bölüm 5 Kaydetme, Güncelleme ve Silme İşlemleri

Personel Kayıt Uygulaması Bölüm 5 Kaydetme, Güncelleme ve Silme İşlemleri yazımıza 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ımızı da 3 başlığa bölersek yapacaklarımız;

  • Kaydet butonuna basıldığında yapılacak kaydetme işlemleri
  • Güncelleme butonuna basıldığında yapılacak kaydetme işlemleri
  • Sil butonuna basıldığında yapılacak silme işlemleri

İlk bölümle başlayalım.

Kaydet butonuna basıldığında yapılacak kaydetme işlemleri

Kaydetme işlemi için Kaydet butonunun click eventine kodlarımı yazacağım.

Try-catch yapısı kullanacağım, çünkü eğer bir hata olursa veya kontrollerimden birisi boş ise program hata verecek, çalışmayı durduracak, böyle bir durum olursa çalışma durmasın, kullanıcıya mesaj versin istiyorum. Bu yüzden yapılacak işlemleri ty bloğunda, hatayı ise catch bloğunda vereceğim.

Önce bağlantımı açacağım. SQLCommand sınıfından nesne türetip burada INSERT INTO ile veri kaydetme işlemi yapacağım. Personel ID verisi kaydetmeyeceğim için 6 adet parametre benim için yeterli.

Tanımladığım 6 parametrenin hangi kontrollerden veri alacağına dair atama işlemi yapıyorum. Kayıt sonunda kullanıcıya bilgi veriyorum. Kayıt olmadı ise yine bir bilgi veriyorum.

En sonda da kayıt eklendikten sonra GridView kontrolümde verileri listeliyorum ve formdaki kontrolleri temizliyorum.

private void btnKaydet_Click(object sender, EventArgs e)
        { 
            //Boş veri olduğunda hata almamak için try catch kullanıyorum.        

            try
            {
                //Bağlantımı açtım.
                conn.Open();

                //SQL command sınıfından Kaydet adında bir nesne türettim. Burada parametlerimi oluşturdum. ID bilgisi kaydetmeyeceğim için 6 parametre benim için yeterli.

                SqlCommand kaydet = new SqlCommand("INSERT INTO Personel (Ad,Soyad,Cinsiyet,Sehir,Maas,Unvan) VALUES (@p1, @p2, @p3, @p4, @p5, @p6)", conn);

                //Kontrollerimden aldığım verileri parametlerime aktarıyorum.
                kaydet.Parameters.AddWithValue("@p1", txtAd.Text);
                kaydet.Parameters.AddWithValue("@p2", txtSoyad.Text);

                if (rdbErkek.Checked)
                {
                    kaydet.Parameters.AddWithValue("@p3", true);
                }
                if (rdbKadin.Checked)
                {
                    kaydet.Parameters.AddWithValue("@p3", false);
                }
                
                kaydet.Parameters.AddWithValue("@p4", cmbSehir.SelectedItem);
                kaydet.Parameters.AddWithValue("@p5", txtMaas.Text);
                kaydet.Parameters.AddWithValue("@p6", txtUnvan.Text);
                kaydet.ExecuteNonQuery();
                conn.Close();
                MessageBox.Show("Kayıt eklenmiştir");
            }

            //hata varsa mesaj veriyoruz
            catch (Exception)
            {
                MessageBox.Show("Tüm ilgili alanlar doldurulmadan kayıt işlemi yapılamaz!");
            }

            //Kaydetme işleminden sonra DataGridView'de kaydedilen veri görüntülensin istediğim için Listele metodumu ve kontrollerim temizlensin istediğim için Temizle metodunu çalıştırdım.
            Listele();
            Temizle();        
                       

        }

Geçelim ikinci adıma.

Güncelleme butonuna basıldığında yapılacak işlemler

Güncelleme işlemi için Güncelle butonunun click eventine kodlarımı yazacağım.

İf-else yapısı kullanacağım, çünkü eğer datagridview üzerinde çift tıklama işlemi yapılmadan, Güncelle butonuna basılırsa program hata verecek, çalışmayı durduracak, böyle bir durum olursa çalışma durmasın, kullanıcıya mesaj versin istiyorum.

Eğer txtID değerim boş ise kullanıcıya bilgi vereceğim.

Eğer txtID değeri boş değilse DataGridView çift tıklanmış yani güncellenecek veri seçilmiş demektir.

Daha sonra bağlantımı açacağım.

SQL command sınıfından bir nesne türetip, parametreleri verip güncelleme işlemi yapacağım. ID bilgisi güncellemeyeceğim için 6 parametre benim için yeterli. Ancak tabi hangi veri güncellenecek SQL tarafında bunu belirtmek için WHERE koşulunu kullanıyorum.

Daha sonra güncelleme sonucu verileri alacağım kontrolleri ve parametreleri eşleştiriyorum.

Kullanıcıya bilgi veriyorum.

Güncelleme işleminden sonra DataGridView’de güncellenen veri görüntülensin istediğim için Listele metodumu ve kontrollerim temizlensin istediğim için Temizle metodunu çalıştırıyorum.

private void btnGuncelle_Click(object sender, EventArgs e)
        {
            //Eğer txtID kontrolüm boş ise DataGridView üzerinde güncellenecek kayıt seçilmemiş demektir. Buna ilişkin kullanıcıya uyarı mesajı veriyorum.
            if(txtID.Text == "")
            {
                MessageBox.Show("Lütfen listelenen öğeler içinde silmek istediğinizi çift tıklayınız!");
            }

            //Eğer DataGridView üzerinde veri seçilmiş ise ve çift tıklama ile veriler aktarılmış ise aşağıdaki kodlar çalışacak.
            else
            {
                //Bağlantımı açıyorum.
                conn.Open();

                //SQL command sınıfından guncelle adında bir nesne türettim. Burada parametlerimi oluşturdum. ID bilgisi güncellemeyeceğim için 6 parametre benim için yeterli. Yalnız hangisini güncelleyeceğimi belirtmek için WHERE şartı sonrası bir parametrem daha var.
                SqlCommand guncelle = new SqlCommand("UPDATE Personel SET Ad=@p1, Soyad=@p2, Cinsiyet=@p3, Sehir=@p4, Maas=@p5, Unvan=@p6 WHERE ID=@p0", conn);

                //Güncelleme işleminde alınacak verileri hangi kontrollerden alıyorum, bunları tanımlıyor ve parametrelerime eşitliyorum.
                guncelle.Parameters.AddWithValue("@p0", txtID.Text);
                guncelle.Parameters.AddWithValue("@p1", txtAd.Text);
                guncelle.Parameters.AddWithValue("@p2", txtSoyad.Text);

                if (rdbErkek.Checked)
                {
                    guncelle.Parameters.AddWithValue("@p3", true);
                }
                if (rdbKadin.Checked)
                {
                    guncelle.Parameters.AddWithValue("@p3", false);
                }

                guncelle.Parameters.AddWithValue("@p4", cmbSehir.SelectedItem);
                guncelle.Parameters.AddWithValue("@p5", txtMaas.Text);
                guncelle.Parameters.AddWithValue("@p6", txtUnvan.Text);

                //komut çalışıyor.
                guncelle.ExecuteNonQuery();

                //bağlantımı kapatıyorum ve kullanıcıya bilgi veriyorum.
                conn.Close();
                MessageBox.Show("Güncelleme işlemi tamamlandı");

            }

            //Güncelleme işleminden sonra DataGridView'de güncellenen veri görüntülensin istediğim için Listele metodumu ve kontrollerim temizlensin istediğim için Temizle metodunu çalıştırdım.

            Listele();
            Temizle();
        }

Gelelim son adıma.

Sil butonuna basıldığında yapılacak silme işlemleri

Silme işlemi için sil butonunun click eventine kodlarımı yazacağım.

İf-else yapısı kullanacağım, çünkü eğer datagridview üzerinde çift tıklama işlemi yapılmadan, Sil butonuna basılırsa program hata verecek, çalışmayı durduracak, böyle bir durum olursa çalışma durmasın, kullanıcıya mesaj versin istiyorum.

Eğer txtID değerim boş ise kullanıcıya bilgi vereceğim.

Eğer txtID değeri boş değilse DataGridView çift tıklanmış yani silinecek veri seçilmiş demektir.

Daha sonra bağlantımı açacağım.

SQL command sınıfından bir nesne türetiyorum. Hangi veri silinecek SQL tarafında bunu belirtmek için WHERE koşulunu kullanıyorum.

Daha sonra silme işlemi için veriyi alacağım kontrolü ve parametreyi eşleştiriyorum.

Kullanıcıya bilgi veriyorum.

Silme işleminden sonra DataGridView’de veriler görüntülensin istediğim için Listele metodumu ve kontrollerim temizlensin istediğim için Temizle metodunu çalıştırıyorum.

private void btnSil_Click(object sender, EventArgs e)
        {
            //Kayıt silinebilmesi için mutlaka Personel ID kısmında yazan textboxda veritabanımızda yer alan ID'lerden birisinin olması gerek. Bunun için de listelenen kayıtlarda çift tıklanarak Id bilgisinin txtID'ye gelmesi gerek.
            
            if (txtID.Text == "")
            {
                MessageBox.Show("Lütfen listelenen öğeler içinde silmek istediğinizi çift tıklayınız!");
            }

            else

            {
                //bağlantımı açıyorum
                conn.Open();

                //sql command sınıfından sil nesnesi türettim where ile koşulumu belirtiyorum.
                SqlCommand sil = new SqlCommand("DELETE FROM Personel WHERE ID=@p1", conn);

                //silme işlemlerimi yapıyor ve mesajımı veriyorum.
                sil.Parameters.AddWithValue("@p1", txtID.Text);
                sil.ExecuteNonQuery();
                conn.Close();
                MessageBox.Show("Kayıt silinmiştir");

            }

            //Silme işleminden sonra DataGridView'de veri görüntülensin istediğim için Listele metodumu ve kontrollerim temizlensin istediğim için Temizle metodunu çalıştırdım.

            Listele();
            Temizle();
            

        }

Bu yazımızda da projemizde kaydetme, güncelleme ve silme işlemlerini gerçekleştirdik. Şimdilik bu kadar 😊

Bir cevap yazın

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