Veritabanıyla ilgili anlatacağımız son işlem kayıt silme. Bundan önceki yazılarımda veritabanına kayıt ekleme, kayıtları görüntüleme ve kayıt güncelleme işlemlerini detaylı olarak anlattım. Ayrıca veritabanı işlemleri sırasında kullandığımız DataAdapter, DataReader, SqlCommand gibi birçok sınıftan bahsettiğimiz için burada bu konulara değinmeden geçiyorum.
Önceki yazılarımızı okumayanlar için, Sql Server üzerindeki musteriler tablomuzun aşağıdaki gibi olduğunu belirteyim.
Şimdi formumuzu tasarlayalım. Aşağıdaki gibi basit bir form işimizi görecektir.
Kodlarımızı yazmaya geçmeden önce programın çalışma mantığından kısaca bahsetmekte fayda var. Kayıt silme işlemi için öncellikle, silinecek kaydın veritabanından bulunması gerekiyor. Daha sonra bu kayıtla ilgili silme onayı istenerek kaydın yanlışlıkla silinmesi gibi bir durumunun önüne geçiyoruz. Son olarak silme işlemini gerçekleştirip, kullanıcıya “Silindi” mesajı göstererek işlemi tamamlıyoruz.
Programın kodlarını aşağıdaki gibi yazalım. Gerekli açıklamaları detaylı bir şekilde kod aralarına ekledim.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
using System; using System.Data; using System.Data.SqlClient; using System.Text; using System.Windows.Forms; namespace MusteriTakipProgrami { public partial class KayitSil : Form { public KayitSil() { InitializeComponent(); } static string conString = "Server=Kutlay-;Database=MusteriTakip;Uid=sa;Password=kutlay;"; SqlConnection baglanti = new SqlConnection(conString); private void btnSil_Click(object sender, EventArgs e) { baglanti.Open(); string secmeSorgusu = "SELECT * from musteriler where musterino=@musterino"; //musterino parametresine bağlı olarak müşteri bilgilerini çeken sql kodu SqlCommand secmeKomutu = new SqlCommand(secmeSorgusu, baglanti); secmeKomutu.Parameters.AddWithValue("@musterino", txtMusterino.Text); //musterino parametremize textbox'dan girilen değeri aktarıyoruz. SqlDataAdapter da = new SqlDataAdapter(secmeKomutu); SqlDataReader dr = secmeKomutu.ExecuteReader(); //DataReader ile müşteri verilerini veritabanından belleğe aktardık. if (dr.Read()) //Datareader herhangi bir okuma yapabiliyorsa aşağıdaki kodlar çalışır. { string isim = dr["isim"].ToString() + " " + dr["soyisim"].ToString(); dr.Close(); //Datareader ile okunan müşteri ad ve soyadını isim değişkenine atadım. //Datareader açık olduğu sürece başka bir sorgu çalıştıramayacağımız için dr nesnesini kapatıyoruz. DialogResult durum = MessageBox.Show(isim+" kaydını silmek istediğinizden emin misiniz?", "Silme Onayı", MessageBoxButtons.YesNo); //Kullanıcıya silme onayı penceresi açıp, verdiği cevabı durum değişkenine aktardık. if (DialogResult.Yes==durum) // Eğer kullanıcı Evet seçeneğini seçmişse, veritabanından kaydı silecek kodlar çalışır. { string silmeSorgusu = "DELETE from musteriler where musterino=@musterino"; //musterino parametresine bağlı olarak müşteri kaydını silen sql sorgusu SqlCommand silKomutu = new SqlCommand(silmeSorgusu, baglanti); silKomutu.Parameters.AddWithValue("@musterino", txtMusterino.Text); silKomutu.ExecuteNonQuery(); MessageBox.Show("Kayıt Silindi..."); //Silme işlemini gerçekleştirdikten sonra kullanıcıya mesaj verdik. } } else MessageBox.Show("Müşteri Bulunamadı."); baglanti.Close(); } } } |
Silme onayı penceremizde silinecek müşterinin ad ve soyad bilgilerini gösterdiğimiz için işlem biraz uzadı fakat kullanışlı bir kayıt silme formu yaptık.
Veritabanı işlemlerimizi bu konuyla tamamladık. Basit her yerde bulabileceğiniz anlatımlar yerine projelerde kullanabileceğiniz şekilde, açıklamalarıyla birlikte konuyu anlatmaya çalıştım. Umarım beğenmişsinizdir, konuyla ilgili her türlü sorunuzu bana iletebilirsiniz.