1. Anasayfa
  2. Asp.net

Asp.Net Dersleri – Asp.net GridView Kayıt Güncelleme, Silme ve Seçilileri Silme İşlemleri

Asp.Net Dersleri – Asp.net GridView Kayıt Güncelleme, Silme ve Seçilileri Silme İşlemleri
2

Asp.net ile GridView nesnesi üzerinde gösterdiğiniz kayıtların dinamik olarak silinmesini , güncellenmesini , checkbox ekleyerek seçilenlerin silinmesi işlemini sağlayabilirsiniz. Uygulamamızda SqlServer üzerindeki bir veri tabanından gelen bilgiler üzerinde bu işlemleri uygulayacağız ilk olarak asp.net ile sqlserver bağnatısını sağlayabilmek için Web.Config Dosyamızı aşağıaki gibi düzenleyip bağlantı cümlemizi ekliyoruz.
Web.Config

<configuration>
  <connectionStrings>
    <add name="ogrenciConnectionString" connectionString="Data Source=L1-PCOGRETMENSQLEXPRESS;Initial Catalog=ogrenci1;Integrated Security=True"
        providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

Initial Catalog kısmına veritabanı ismini, connectionString’e Sunucu ismini yazıyoruz.

Şimdi Yukarıdaki görüntüyü oluşturabilmek için gerekli olan kodları yazalım

<asp:GridView ID="GridView1" runat="server" GridLines="None"  
            AutoGenerateColumns="False" CssClass="grid" BackColor="White" 
            BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" 
            CellSpacing="1"  DataSourceID="SqlDataSource1"  DataKeyNames="id" 
            AllowPaging="True">
                        <Columns>
                <asp:TemplateField>
                <HeaderTemplate>
                    <asp:Button ID="selectAll" Text="Seçili Olanları Sil" runat="server" onclick="selectAll_Click" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="durum" runat="server" />
                </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
              <asp:BoundField DataField="ad" HeaderText="ad" SortExpression="ad" />
              <asp:BoundField DataField="soyad" HeaderText="soyad" SortExpression="soyad" />
              <asp:BoundField DataField="sinif" HeaderText="sinif" SortExpression="sinif" />
              <asp:BoundField DataField="tcno" HeaderText="tcno" SortExpression="tcno" />
              <asp:BoundField DataField="adres" HeaderText="adres" SortExpression="adres" />

                <asp:CommandField ShowEditButton="true" EditText="Düzenle" CancelText="İptal" UpdateText="Güncelle" />
                <asp:ButtonField CommandName="Delete" Text="Sil" ItemStyle-ForeColor="red" >
                <ItemStyle ForeColor="Red"></ItemStyle>
                </asp:ButtonField>
            </Columns>
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
            <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#F1F1F1" />
            <SortedAscendingHeaderStyle BackColor="#594B9C" />
            <SortedDescendingCellStyle BackColor="#CAC9C9" />
            <SortedDescendingHeaderStyle BackColor="#33276A" />
        </asp:GridView>
         <asp:SqlDataSource ID="SqlDataSource1" runat="server"
          ConnectionString="<%$ ConnectionStrings:ogrenciConnectionString %>"
          SelectCommand="SELECT [id],[ad], [soyad], [sinif], [tcno], [adres] FROM [kayit]" 
          UpdateCommand="UPDATE [kayit] SET [ad] = @ad , [soyad] =  @soyad , [sinif] = @sinif , [tcno]=@tcno , [adres]=@adres WHERE [id] = @id" DeleteCommand="Delete [kayit] Where [id]=@id">
      </asp:SqlDataSource>

Yukarıdaki kodla ile tekli olarak silme ve güncelleme işlemi yapabiliyoruz eğer toplu olarak silme işlemi yapılacaksa
“< asp :Button ID="selectAll" Text="Seçili Olanları Sil" runat="server" onclick="tumunusec" / > ” satırında tanımaladığımız tumunusec isimli fonksiyonu yazmamız gerekiyor, peki neler yapacağız bu fonksiyonda ; seçili olan elemanların id numaralarını alıp bir listeye eklemek için kullanacağız kodlarımız aşağıda ama bunları code behind tarafına yazıyoruz yani Default.aspx.cs dosyasına

 protected void tumunusec(object sender, EventArgs e)
    {
        List<string> liste = new List<string>();
        string id = String.Empty;
        //www.bilisimogretmeni.com
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            CheckBox cb = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("durum");
            if(cb !=null)
            {
                if (cb.Checked)
                {
                    id = GridView1.Rows[i].Cells[1].Text;
                    liste.Add(id);
                }
            }
        }
        sil(liste);
    }

Seçili olanları bulduk listeye ekledik sıra geldi bunları silmeye onun içinde bir döngü ile liste içindeki id’leri alıp hepsi için delete komutunu çalıştıracağız.

protected void sil(List<string> st)
    {
    foreach (var item in st)
        {

            string constr = ConfigurationManager.ConnectionStrings["ogrenciConnectionString"].ConnectionString;
            SqlConnection baglanti = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand("Delete From kayit Where id=@id", baglanti);
            cmd.Parameters.AddWithValue("@id", item.ToString());
            baglanti.Open();
            cmd.ExecuteNonQuery();
            baglanti.Close();
            //www.bilisimogretmeni.com
        }

        GridView1.DataBind();
    }

Evet hepsi bu kadar iyi çalışamalar

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    ba_ar_l_
    Başarılı
  • 0
    gayet_yi
    Gayet İyi
  • 1
    te_ekk_rler
    Teşekkürler
  • 0
    anlamad_m
    Anlamadım
  • 1
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Yorum
Inline Feedbacks
View all comments
Recep SENTURK

Merhaba, bu kodu uyguluyorum fakat nedense checkbox seçili olduğu halde false olarak geliyor neden olabilir?