Recep SELLİ - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Makalelerim | Videolarim | RSS RSS | İletişim
İçerik Kategorileri
Anket
Web Projelerinde Hangi Teknolojiyi Kullanıyorsunuz ?

E-mail Adresini Ekle


  •              
Tema
Kaynaklar
Takip Ettiklerim

Hepsini Sil Uygulaması


Herkese merhabalar ben Recep SELLİ bu makalemizde sizlerle birlikte asp.net içerisinde veritabanımızdan gelen kayıtların hepsini veya bir kısmını nasıl silebileceğimizi inceliyeceğiz. Bu tür uygulamaları daha çok web sitelerinin mail sayfalarında kullanıcının toplu bir şekilde veya belirlediği birden fazla mail kaydını tek seferde silebilmesi için kullanılır tabiki bunu sadece mail sayfaları ile sınırlandırmamak lazım kullanıcıya ait birden fazla içeriğin bulunduğu hemen heryerde kullanabiliriz.

Dilerseniz şimdi asp.net bir uygulama açalım ve makalemizin derinliklerine doğru dalalım :) Uygulamamızı açtıkdan sonra defult.aspx sayfamıza ben bir tane datalist kontrolü bırakıyorum ve ItemTemplate içerisinde veritabanından gelecek olan kayıtları göstermesi için gerekli düzenlemeleri yapıyorum.Default.aspx sayfamın kaynak kodları aşağıdaki gibi.




Daha sonra sayfamızın en tepesinde yer alan checkbox nesnemiz check edildiğinde datalist içerisindeki checkbox’larında check olması için JavaScript kodumuzu head tagları arasına yazıyorum.JavaScript kodumuz aşağıdaki gibi.

 
    function checkAll() {
        for (var i = 0; i < document.forms[0].elements.length; i++) {
            var e = document.forms[0].elements[i];
            if ((e.name != ’allbox’) && (e.type == ’checkbox’)) {
                e.checked = document.forms[0].allbox.checked;
            }
        }
    }


Artık default.aspx sayfamızın code-behind kısmına geçebiliriz.Öncelikle veritabanımız ile bağlantımızı sağlayıp datalist içerisinde verilerimizi gösterelim.Bunun için ben VeriGetir adında bir metot yazıyorum.

C# için VeriGetir adlı metodumuz.

private void VeriGetir()
{
        //Veritabanımız ile bağlantımızı sağlıyoruz.
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.jet.oledb.4.0; Data Source="+Server.MapPath("App_Data\\rejep.mdb"));
        //Verilerimizi DataTable’e aktarmak için OleDbDataAdapter nesnesine T-sql sorgumuzu ve bağlantımızı bildiriyoruz.
        OleDbDataAdapter da = new OleDbDataAdapter("Select * from Dostlar", con);
        //DataTable nesnemizi oluşturuyoruz.
        DataTable dt = new DataTable();
        //OleDbDataAdapter daki verilerimizi DataTable nesnemize aktarıyoruz.
        da.Fill(dt);
        //DataTable içerisinde yer alan verilerimizi sayfamızda göstermek için DataList kontrolümüze aktarıyoruz.
        DataList1.DataSource = dt;
        //DataList’imizi DataBind edip verilerimizi sayfamızda göstermesini sağlıyoruz.
        DataList1.DataBind();
}


Vb.net için VeriGetir adlı metodumuz.

Private Sub VeriGetir()
        ’Veritabanımız ile bağlantımızı sağlıyoruz.
        Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0; Data Source="& Server.MapPath("App_Data\\rejep.mdb"))
        ’Verilerimizi DataTable’e aktarmak için OleDbDataAdapter nesnesine T-sql sorgumuzu ve bağlantımızı bildiriyoruz.
        Dim da As New OleDbDataAdapter("Select * from Dostlar", con)
        ’DataTable nesnemizi oluşturuyoruz.
        Dim dt As New DataTable
        ’OleDbDataAdapter daki verilerimizi DataTable nesnemize aktarıyoruz.
        da.Fill(dt)
        ’DataTable içerisinde yer alan verilerimizi sayfamızda göstermek için DataList kontrolümüze aktarıyoruz.
        DataList1.DataSource = dt
        ’DataList’imizi DataBind edip verilerimizi sayfamızda göstermesini sağlıyoruz.
        DataList1.DataBind()
End Sub


Hemen sonrasında sayfamızın Page_Load isimli metodunda VeriGetir isimli metodumuzu çağırıyoruz.

C# için Page_Load metodumuz.

protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
        {
            //Sayfa PostBack olmamış ise verilerimizi çağırıyoruz.
            VeriGetir();
        }
}


Vb.net için Page_Load metodumuz.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack = False Then
            ’Sayfa PostBack olmamış ise verilerimizi çağırıyoruz.
            VeriGetir()
        End If
End Sub


Şimdi yazacağımız Sil isimli metodumuz integer tipinde bir değer alacak ve veritabanımızdan seçtiğimiz kayıtları silmemizi sağlayacak.

C# için Sil isimli metodumuz.

private void Sil(int SiteId)
{
        //Veritabanımız ile bağlantımızı sağlıyoruz.
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.jet.oledb.4.0; Data Source=" + Server.MapPath("App_Data\\rejep.mdb"));
        //Silme işlemi gerçekleştireceğimiz için OleDbCommand nesnesi oluşturuyoruz.
        OleDbCommand command = new OleDbCommand();
        //command nesnemize bağlantımızı bildiriyoruz.
        command.Connection = con;
        //Silme işlemini gerçekleştirecek olan T-Sql cümlemizi yazıyoruz.
        command.CommandText = "Delete from Dostlar Where DostsiteId=" + SiteId;
        //Bağlantı durumunu kontrol ediyoruz.
        if (con.State != ConnectionState.Open)
        {
            //Kapalı olan bağlantıyı açıyoruz.
            con.Open();
        }
        //Silme işlemini gerçekleştirmek için command nesnemizin ExecuteNonQuery isimli metodunu çağırıyoruz.
        command.ExecuteNonQuery();
        //Bağlantımızı kapatıyoruz.
        con.Close();
}


Vb.net için Sil isimli metodumuz.

Private Sub Sil(ByVal SiteId As Integer)
        ’Veritabanımız ile bağlantımızı sağlıyoruz.
        Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0; Data Source=" &Server.MapPath("App_Data\\rejep.mdb"))
        ’Silme işlemi gerçekleştireceğimiz için OleDbCommand nesnesi oluşturuyoruz.
        Dim command As New OleDbCommand()
        ’command nesnemize bağlantımızı bildiriyoruz.
        command.Connection = con
        ’Silme işlemini gerçekleştirecek olan T-Sql cümlemizi yazıyoruz.
        command.CommandText = "Delete from Dostlar Where DostsiteId=" & SiteId
        ’Bağlantı durumunu kontrol ediyoruz.
        If con.State <> ConnectionState.Open Then
            ’Kapalı olan bağlantıyı açıyoruz.
            con.Open()
        End If
        ’Silme işlemini gerçekleştirmek için command nesnemizin ExecuteNonQuery isimli metodunu çağırıyoruz.
        command.ExecuteNonQuery()
        ’Bağlantımızı kapatıyoruz.
        con.Close()
End Sub


Sırada default.aspx sayfamızda yer alan Sil butonuna tıklandığında yazacağımız metodumuzda bu metot içerisinde foreach döngüsü sayesinde Datalist’imizin item’larında gezinerek check edilmiş checkbox’larımızı yakalayacağız.

C# için Sil butonun metodu.

protected void BtnHpsiniSil_Click(object sender, EventArgs e)
{
        //Check edilen verinin id değerini sil metoduna gönderecek değişkenimiz.
        int SiteId;
        //For Each sayesinde Datalist itemları içerisinde geziniyoruz.
        foreach (DataListItem item in this.DataList1.Items)
        {
            //Oluşturduğumuz CheckBox nesnesine Datalist içerisindeki CheckBox’ın bilgilerini aktarıyoruz.
            CheckBox box = (CheckBox)item.FindControl("chkExpertise1");
            //CheckBox nesnemizin Checked olup olmadığını kontrol ediyoruz.
            if (box.Checked)
            {
                //Checked olanların id değerini datalist içerisindeki Label’dan alıyoruz.
                SiteId = int.Parse(((Label)item.FindControl("DostsiteIdLabel")).Text);
                //Alınan id değerinin silinmesi için gerekli olan metodumuzu çağırıyoruz.
                Sil(SiteId);
            }
        }
        //İşlem bittiğinde verileri yeniden sayfamıza getiriyoruz.
        VeriGetir();
}


Vb.net için Sil butonun metodu.

Protected Sub BtnHpsiniSil_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnHpsiniSil.Click
        ’Check edilen verinin id değerini sil metoduna gönderecek değişkenimiz.
        Dim SiteId As Integer
        ’For Each sayesinde Datalist itemları içerisinde geziniyoruz.
        For Each item As DataListItem In DataList1.Items
            ’Oluşturduğumuz CheckBox nesnesine Datalist içerisindeki CheckBox’ın bilgilerini aktarıyoruz.
            Dim box As CheckBox = CType(item.FindControl("chkExpertise1"), CheckBox)
            ’CheckBox nesnemizin Checked olup olmadığını kontrol ediyoruz.
            If box.Checked Then
                ’Checked olanların id değerini datalist içerisindeki Label’dan alıyoruz.
                SiteId = Convert.ToInt32(CType(item.FindControl("DostsiteIdLabel"), Label).Text)
                ’Alınan id değerinin silinmesi için gerekli olan metodumuzu çağırıyoruz.
                Sil(SiteId)
            End If
        Next
        ’İşlem bittiğinde verileri yeniden sayfamıza getiriyoruz.
        VeriGetir()
End Sub


Bir makalemizin daha sonuna geldik arkadaşlar ben Recep SELLİ bu makalemizde sizlerle birlikte web sitelerinde sıklıkla kullanılan hepsini sil işlemini incelemeye çalıştık.Herkese bol kodlamalar.

Yazılım 20.02.2009 16:34:50

1 YORUM


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Makalelerim | Videolarim | RSS | İletişim