ASP.net ile checkboxdan seçilen kayıtları databaseden silme

 Bu yazımızda  ASP.net ile seçime bağlı silme uygulaması örneğini  yapıyor olacağız.  Örneğin Hotmail ,gmail gibi sitelerde gelen kutusundan silmek istediğimiz maillerin yanındaki checkbox ları seçip sil butonuna basarız ve tek seferde tüm seçilen mailleri sileriz. Bu uygulama veritabanı olarak Access  kullanılacak ve senaryo gereği veritabanında kayıtlı olan mailleri listeleyip isteğimiz mailleri seçip sileceğiz.  İl olarak veritabanından verileri çekelim ve bir dataliste aktaralım .

Default.aspx
      
        <asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
          <asp:CheckBox ID="c" runat="server" /> <asp:Label ID="l" runat="server" Text='<%# Eval("Mail") %>'></asp:Label>
          <asp:Label runat="server" Visible="false" ID="lblid" Text='<%# Eval("ID") %>'></asp:Label>
        </ItemTemplate>
        </asp:DataList>
        <br />
 
 
        
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Seçilenleri Sil" />
 
Şimdi de kodları aşağıdaki gibi yazalım
(sayfamıza using System.Data.OleDb ve using System.Data name spacelerini  eklemyi untmuyoruz tabi)

Default.aspx.cs

OleDbConnection bg = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + HttpContext.Current.Server.MapPath("~/App_Data/Kobay.mdb"));
     
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            VeriGetir();//sayfa ilk açıldığında verigetir methodu çağırılıyor
        }
 
    }
 
    private void VeriGetir()
    {
      
        bg.Open();
        OleDbCommand cmd = new OleDbCommand("Select * FROM Mail", bg);//mail tablosundan tüm mailler çekiliyor
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);//adapter e atılıyor
        DataTable dt = new DataTable("tbl");//datatable örneği oluşturuluyor
        da.Fill(dt);// veriler tablo ya dolduruluyor
        DataList1.DataSource = dt.DefaultView;//datalist e dolduruluyor
        DataList1.DataBind();
        bg.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)//sil butonu tıklandığında
    {
        ArrayList dizi=new ArrayList();//bir arraylis dizi alınıyor
 
        foreach (DataListItem item in DataList1.Items)//datalistin kayıt sayı kadar bir döngü oluşturuluyor
        {
            CheckBox c = (CheckBox)item.FindControl("c");//her satırdaki checkbox ın değeri bir checkbox örneği oluturulup atanıyor
            if (c.Checked)//alınan checkbox seçili ise
            {
                Label lbl = (Label)item.FindControl("lblid");// o satırdaki Labeldeki id değeri aynı mantıkla alınıyor
                dizi.Add(lbl.Text);//bu alınan değer diziye ekleniyor
            }
        }
 
        for (int i = 0; i < dizi.Count; i++)//dizinin eleman sayısı kadar bir döngü oluşturuluyor
        {
                KayitSil(dizi[i].ToString());//her id değeri kayıt sil methoduna parametre oalrak gönderiliyor
        }
        VeriGetir();//sayfadaki mailler yeniden listleniyor
 
         
    }
 
    private void KayitSil(string p)//gelen id değeri alınıyor
    {
       int id = Int32.Parse(p);//integer e dönüştülüyor
 
       bg.Open();//bağlantı açılıyor
       OleDbCommand cmd = new OleDbCommand("delete FROM Mail Where ID=" + id + " ", bg);//veritabanından gelen id ye ayit kayıt siliniyor
       cmd.ExecuteNonQuery();//bitti ....
       bg.Close();
    }
Kolay Gelsin.
 

 

Bunu beğen
Paylaş

Yorumlar
Yorum Yaz
İsim : (*)
E-mail :
Web Adresi:
:
(*)
 
Kapat