Anasayfa / Yazılım / ASP.NET / ASP Formu ile Veritabanından Kayıt Silme

ASP Formu ile Veritabanından Kayıt Silme

Şu ana kadar ufak projemizde kayıt ekleme, kayıt silme, kayıt güncelleme kısımlarını gördük. Şimdi de bu ufak projenin son yazısı olan kayıt silme işlemine değineceğim. Yine GursoyLtd veritabanını kullanıyorum. Daha önceki yazımda nasıl oluşturduğumuzu anlatmıştım, hatta Sql Scriptini de vermiştim. Aşağıdaki yazıdan alabilirsiniz..

Veritabanına Veri Kaydı

web.config dosyası :

web.config :







    
        
    
  
    
  

Projeme bir web form ekliyorum adını ben KisiSil.aspx verdim. Bu formun tasarım sayfasında bir adet DropDownList olacak burada veritabanında yer alan mevcut kişiler listelenecek. Ve ben buradan seçtiğim kişiyi bir butona basarak sileceğim.

Şimdi bu sayfamdaki komponentleri ve tasarım kodlarını veriyorum :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="KisiSil.aspx.cs" Inherits="KisiSil" %>





    Kişi Silme Sayfası
    


 
   

Evet sayfamdaki komponentlerim bu şekilde.. Şimdi butona basıldığında gerçekleşecek işlemler neler buna geçelim. Sayfam ilk açıldığı anda benim kişileri DropDownList içinde gösterebilmem gerekiyor. Şimdi kısmi olarak kodları paylaşayım en son yine tüm kodları bir arada paylaşacağım.

KisiEkle.aspx.cs dosyası Page_Load eventinde :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class KisiSil : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Sayfam PostBack edilmemişse ve ilk defa yükleniyorsa CalisanListesiniYukle metodunu çalıştır.
        if (!IsPostBack)
        {
            CalisanListesiniYukle();
        }
        
    }
    //CalisanListesiniYukle metodum.
    private void CalisanListesiniYukle()
    {
        //Bağlantı ve komut tanımlamalarım.
        SqlConnection conn;
        SqlCommand comm;
        SqlDataReader reader;
        //Bağlantımı satırım. ConfigurationManager ile alıyorum.
        string connectionString = ConfigurationManager.ConnectionStrings["GursoyLtd"].ConnectionString;
        conn = new SqlConnection(connectionString);
        //Burada komut kısmında bir string toplama işlemim var çünkü benim Ad ve Soyad alanım tablomda ayrı ayrı,
        //Ben bunu DropDownList kontrolümde yan yana göstermek istiyorum o yüzden sorgum bu şekilde.
        comm = new SqlCommand("SELECT CalisanID,Ad + ' ' + Soyad AS AdSoyad FROM Calisanlar", conn);

        try
        {
            //Bağlantımı açıyorum.
            conn.Open();
            //DataReader nesnemi çalıştırıyorum.
            reader = comm.ExecuteReader();
            //DropDownList kontrolüm ilgili alanlarla doluyor.
            DDLKisilistesi.DataSource = reader;           
            DDLKisilistesi.DataValueField = "CalisanID";
            DDLKisilistesi.DataTextField = "AdSoyad";
            DDLKisilistesi.DataBind();
            reader.Close();
        }
        catch
        {
            //Hata meydana gelirse verilecek mesaj.
            lblHata.Text = "Kişi Listesi yüklemesi esnasında hata oluştu!";
        }

        finally
        {
            //Bağlantımı kapatıyorum.
            conn.Close();
        }
        //Herhangi bir isim seçilmediğinde butonum kullanılmayacak o yüzden burası da böyle.
        btnKisiSil.Enabled = false;

    }
}

Kodların içinde açklamaları yaptım ama genel olarakda yapalım. Sayfam ilk defa yüklenmişse yani daha önceden postback edilmemişse oluşturmuş olduğum metot çalışacak ve sayfa yüklendiği anda Kişiler DropDownList’e yüklenmiş olacak. Geri kalan kısımları listeleme ile alakalı gerekli veritabanı işlemleri önceki yazılarımı okuyanlar bilirler. Şimdi silme işleminin gerçekleşmesi için gereken kod kısmını yazalım. Butona basıldığında silme işlemi gerçekleşecek.

Kişi Sil butonuma çift tıklıyorum ve

Butonumun Click Eventinde :

protected void btnKisiSil_Click(object sender, EventArgs e)
    {
        //Sql Bağlantı tanımlamalarımı yapıyorum.
        SqlConnection conn;
        SqlCommand comm;
        string connectionString = ConfigurationManager.ConnectionStrings["GursoyLtd"].ConnectionString;
        conn = new SqlConnection(connectionString);
        //SQL komutum hangi parametreye göre veri sileceğim, bunu tanımlıyorum.
        comm = new SqlCommand("DELETE FROM Calisanlar WHERE CalisanID = @CalisanID", conn);
        comm.Parameters.Add("@CalisanID", System.Data.SqlDbType.Int);
        comm.Parameters["@CalisanID"].Value = DDLKisilistesi.SelectedItem.Value;

        try
        {
            //Bağlantımı açıyorum, komutumu çalıştırıyorum.
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch
        {
            //Hata meydana gelirse yazdırılacak mesaj.
            lblHata.Text = "Kişi Silme esnasında hata oluştu!";
        }
        finally
        {
            //Bağlantımı kapatıyorum.
            conn.Close();
        }
        //Kişi silindikten sonra tekrar verileri yüklüyorum, silindiğini böylelikle görebilirim..
        CalisanListesiniYukle();
    }

Görüldüğü gibi aslında işlemler yine hemen hemen aynı. Butona tıklandığında ilgili bağlantılarım tanımlanıyor, ilgili SQL komutum çalıştırılıyor. Burada silme işlemi yapılıyor, silinecek veri ise DropDownListten seçilen verinin value değerine göre alınıyor.

Şimdi KisiEkle.aspx.cs sayfasının tüm kodlarını tek bir yerde verelim :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class KisiSil : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Sayfam PostBack edilmemişse ve ilk defa yükleniyorsa CalisanListesiniYukle metodunu çalıştır.
        if (!IsPostBack)
        {
            CalisanListesiniYukle();
        }
        
    }
    //CalisanListesiniYukle metodum.
    private void CalisanListesiniYukle()
    {
        //Bağlantı ve komut tanımlamalarım.
        SqlConnection conn;
        SqlCommand comm;
        SqlDataReader reader;
        //Bağlantımı satırım. ConfigurationManager ile alıyorum.
        string connectionString = ConfigurationManager.ConnectionStrings["GursoyLtd"].ConnectionString;
        conn = new SqlConnection(connectionString);
        //Burada komut kısmında bir string toplama işlemim var çünkü benim Ad ve Soyad alanım tablomda ayrı ayrı,
        //Ben bunu DropDownList kontrolümde yan yana göstermek istiyorum o yüzden sorgum bu şekilde.
        comm = new SqlCommand("SELECT CalisanID,Ad + ' ' + Soyad AS AdSoyad FROM Calisanlar", conn);

        try
        {
            //Bağlantımı açıyorum.
            conn.Open();
            //DataReader nesnemi çalıştırıyorum.
            reader = comm.ExecuteReader();
            //DropDownList kontrolüm ilgili alanlarla doluyor.
            DDLKisilistesi.DataSource = reader;           
            DDLKisilistesi.DataValueField = "CalisanID";
            DDLKisilistesi.DataTextField = "AdSoyad";
            DDLKisilistesi.DataBind();
            reader.Close();
        }
        catch
        {
            //Hata meydana gelirse verilecek mesaj.
            lblHata.Text = "Kişi Listesi yüklemesi esnasında hata oluştu!";
        }

        finally
        {
            //Bağlantımı kapatıyorum.
            conn.Close();
        }
        
    }

    protected void btnKisiSil_Click(object sender, EventArgs e)
    {
        //Sql Bağlantı tanımlamalarımı yapıyorum.
        SqlConnection conn;
        SqlCommand comm;
        string connectionString = ConfigurationManager.ConnectionStrings["GursoyLtd"].ConnectionString;
        conn = new SqlConnection(connectionString);
        //SQL komutum hangi parametreye göre veri sileceğim, bunu tanımlıyorum.
        comm = new SqlCommand("DELETE FROM Calisanlar WHERE CalisanID = @CalisanID", conn);
        comm.Parameters.Add("@CalisanID", System.Data.SqlDbType.Int);
        comm.Parameters["@CalisanID"].Value = DDLKisilistesi.SelectedItem.Value;

        try
        {
            //Bağlantımı açıyorum, komutumu çalıştırıyorum.
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch
        {
            //Hata meydana gelirse yazdırılacak mesaj.
            lblHata.Text = "Kişi Silme esnasında hata oluştu!";
        }
        finally
        {
            //Bağlantımı kapatıyorum.
            conn.Close();
        }
        //Kişi silindikten sonra tekrar verileri yüklüyorum, silindiğini böylelikle görebilirim..
        CalisanListesiniYukle();
    }
}

Bir cevap yazın

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