İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ ÖRNEK 1 default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:button ID="Button1" runat="server" Height="29px" onclick="button1_click" Text="BİLGİLERİ GETİR" Width="188px" /> <br /> <asp:gridview ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" > <Columns> <%--ID --%> <asp:boundfield DataField="ID" Visible="false" /> <%--AD --%> <asp:boundfield DataField="Ad" HeaderText="İsim" /> <%--SOYAD --%> <asp:templatefield HeaderText="Soyisim"> 1
Bind("Soyad") %>'/> <asp:textbox ID="txtSoyad" runat="server" Text='<%# <asp:label runat="server" Text='<%# Eval("Soyad") %>'/> <%--VİZE--%> <%--FİNAL--%> <asp:boundfield DataField="Vize" HeaderText="Vize" /> <asp:boundfield DataField="Final" HeaderText="Final" /> <%--DÜZENLE --%> <asp:templatefield HeaderText="Düzenle" ShowHeader="false"> <asp:linkbutton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Düzenle" /> <asp:linkbutton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Güncelle" /> <asp:linkbutton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="İptal" /> <%--SİL -----%> <asp:commandfield HeaderText="Sil" ShowDeleteButton="True" DeleteText="Sil" /> </div> </form> </body> </html> </Columns> </asp:gridview> default.aspx.cs using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.OleDb; 2
public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) BilgileriGetir(); //EDİT (DÜZELTME) BUTONUNA BASILDIĞINDA ===================== protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) GridView1.EditIndex = e.neweditindex; //Tıklanan satırın numarasını alıyor. Tıkladığım satırın hangi satır olduğunu alıyor. BilgileriGetir(); //GÜNCELLEMEYİ İPTAL EDİYOR =============================== protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) GridView1.EditIndex = -1; //Güncelleme modundan çıkıyor. BilgileriGetir(); //GUNCELLENEN SATIRI KAYDEDIYOR ============================ protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) //1.YÖNTEM ----------------------------- //int ID1 = Convert.ToInt32(GridView1.DataKeys[e.RowIndex]["ID"].ToString()); //string Ad1 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtAd").ToString(); //2.YÖNTEM ---------------------------- GridViewRow Satir = GridView1.Rows[e.RowIndex]; //Tablodaki satır numarasını (ID degil) int ID1 = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //Tıklanan satırın bulundugu yerde yazan ID numarası string Ad1 = ((TextBox)(Satir.Cells[1].Controls[0])).Text; //string Soyad1 = ((TextBox)(Satir.Cells[2].Controls[0])).Text; TextBox txtsoyad1 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtSoyad"); int Vize1 = Convert.ToInt32(((TextBox)(Satir.Cells[3].Controls[0])).Text); int Final1 = Convert.ToInt32(((TextBox)(Satir.Cells[4].Controls[0])).Text); BigileriGuncelle(ID1, Ad1, txtsoyad1.text, Vize1, Final1); GridView1.EditIndex = -1; //Güncelleme modundan çıkıyor. BilgileriGetir(); //SATIRI SİLİYOR. ========================================= protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 3
int ID1 = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0].ToString()); //Tıklanan satırın bulundugu yerde yazan ID numarası BilgileriSil(ID1); BilgileriGetir(); //ALT FONKSİYONLAR ************************************** public void BilgileriGetir() //Bağlantı Kurma (Köprü) String BaglantiYolu = ConfigurationManager.ConnectionStrings["VTbaglantisi"].ConnectionString; //Yolu web.config dosyasından alıyor.. Baglanti.Open(); //Sorgu (Emir Listesi) string Sorgu = "SELECT * FROM Table1"; //Adapter Nesnesine bilgiler yüklenerek görüntüleme (Şoför) OleDbDataAdapter Adapter1 = new OleDbDataAdapter(Sorgu, Baglanti); //Bilgiler Dataset ile taşınacak (Kamyon) DataSet DataSet1 = new DataSet(); //Bilgiler DataSetin içersindeki tanımladığımız Tablo1 isimli tabloya Adapter tarafından yükleniyor. Adapter1.Fill(DataSet1, "Tablo1"); //Bilgiler sayfamızdaki hazır nesne tarafından görüntüleniyor. GridView1.DataSource = DataSet1.Tables["Tablo1"]; GridView1.DataBind(); DataSet1.Dispose(); Adapter1.Dispose(); public void BigileriGuncelle(int ID2, string Ad2, string Soyad2, int Vize2, int Final2) //Bağlantıyı Kur (Köprü) String BaglantiYolu = ConfigurationManager.ConnectionStrings["VTbaglantisi"].ConnectionString; //Yolu web.config dosyasından alıyor.. Baglanti.Open(); //Sorgu (Emir Listesi) String Sorgu = "UPDATE Table1 SET Ad= '" + Ad2 + "', Soyad='" + Soyad2 + "', Vize=" + Vize2 + ", Final=" + Final2 + " WHERE ID = " + ID2 ; //Komut Nesnesi (Şöför) OleDbCommand Komut = new OleDbCommand(Sorgu, Baglanti); Komut.ExecuteNonQuery(); 4
public void BilgileriSil(int ID2) //Bağlantıyı Kur (Köprü) String BaglantiYolu = ConfigurationManager.ConnectionStrings["VTbaglantisi"].ConnectionString; //Yolu web.config dosyasından alıyor.. Baglanti.Open(); string Sorgu = "DELETE * FROM Table1 WHERE ID =" + ID2; OleDbCommand Komut = new OleDbCommand(Sorgu, Baglanti); Komut.ExecuteNonQuery(); ÖRNEK 2 default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <br /> <asp:gridview ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="PersonelId" ShowFooter="True" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowCommand="GridView1_RowCommand" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"> <Columns> 5
<asp:templatefield HeaderText="Adı" SortExpression="Adi"> <asp:textbox ID="txtAdi" runat="server" Text='<%# Bind("Adi") %>'/> <FooterTemplate> <asp:textbox ID="txtYeniAd" runat="server"/> </FooterTemplate> <asp:label ID="Label2" runat="server" Text='<%# Eval("Adi") %>'/> <asp:templatefield HeaderText="Soyadı" SortExpression="Soyadi"> <asp:textbox ID="txtSoyad" runat="server" Text='<%# Bind("Soyadi") %>'/> <FooterTemplate> <asp:textbox ID="txtYeniSoyad" runat="server" /> </FooterTemplate> <asp:label ID="Label3" runat="server" Text='<%# Eval("Soyadi") %>'/> <asp:templatefield HeaderText="Medeni Durumu" SortExpression="MedeniDurumu"> <asp:dropdownlist ID="cmbMedeniDurum" runat="server" SelectedValue='<%# Bind("MedeniDurumu") %>'> <asp:listitem Value="Evli" Text="Evli" /> <asp:listitem Value="Bekar" Text="Bekar" /> </asp:dropdownlist> <asp:label ID="lblMedeniDurum" runat="server" Text='<%# Eval("MedeniDurumu") %>'/> <FooterTemplate> <asp:dropdownlist ID="cmbYeniMedDurum" runat="server" > <asp:listitem Selected="True" Text="Evli" Value="Evli" /> <asp:listitem Selected="False" Text="Bekar" Value="Bekar" /> </asp:dropdownlist> </FooterTemplate> <asp:templatefield HeaderText="Şehir" > <asp:textbox ID="txtSehir" runat="server" Text='<%# Bind("Sehir") %>' /> <asp:label ID="Label5" runat="server" Text='<%# Eval("Sehir") %>' /> 6
<FooterTemplate> <asp:textbox ID="txtYeniSehir" runat="server" /> </FooterTemplate> <asp:templatefield HeaderText="Değiştir" ShowHeader="false"> <asp:linkbutton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Güncelle" /> <asp:linkbutton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="İptal" /> <FooterTemplate> <asp:linkbutton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="AddNew" Text="Yeni Kayıt" /> </FooterTemplate> <asp:linkbutton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Değiştir" /> <asp:commandfield HeaderText="Kayıt Sil" ShowDeleteButton="True" DeleteText="Sil" ShowHeader="True" /> </Columns> </asp:gridview> </div> </form> </body> </html> default.aspx.cs using System; using System.Configuration; using System.Data; using System.Data.OleDb; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page PersonelsCls Personel = new PersonelsCls(); //SAYFA YÜKLENİRKEN ======================================= protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) PersonelleriGrideDoldur(); 7
//EDİT (DÜZELTME) BUTONUNA BASILDIĞINDA ===================== protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) GridView1.EditIndex = e.neweditindex; //Tıklanan satırın numarasını alıyor. Tıkladığım satırın hangi satır olduğunu alıyor. PersonelleriGrideDoldur(); //YENİ BİLGİLERİ KAYDEDİYOR =================================== protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) if (e.commandname.equals("addnew")) TextBox txtyeniad = (TextBox)GridView1.FooterRow.FindControl("txtYeniAd"); TextBox txtyenisoyad = (TextBox)GridView1.FooterRow.FindControl("txtYeniSoyad"); DropDownList cmbyenimeddurum = (DropDownList)GridView1.FooterRow.FindControl("cmbYeniMedDurum"); TextBox txtyenisehir = (TextBox)GridView1.FooterRow.FindControl("txtYeniSehir"); Personel.BilgileriKaydet(txtYeniAd.Text, txtyenisoyad.text, txtyenisehir.text, cmbyenimeddurum.selectedvalue); PersonelleriGrideDoldur(); //GÜNCELLEMEYİ İPTAL EDİYOR =============================== protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) GridView1.EditIndex = -1; //Güncelleme modundan çıkıyor. PersonelleriGrideDoldur(); //GUNCELLENEN SATIRI KAYDEDIYOR ============================ protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) TextBox txtadi = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtAdi"); TextBox txtsoyadi = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtSoyad"); DropDownList cmbmedenidurum = (DropDownList)GridView1.Rows[e.RowIndex].FindControl("cmbMedeniDurum"); TextBox txtsehir = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtSehir"); Personel.BilgileriGuncelle(Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0].ToString()), txtadi.text, txtsoyadi.text, txtsehir.text, cmbmedenidurum.selectedvalue); GridView1.EditIndex = -1; //Güncelleme modundan çıkıyor. PersonelleriGrideDoldur(); //SATIRI SİLİYOR. ========================================= protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 8
Personel.KayitSil(Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0].ToString ())); PersonelleriGrideDoldur(); //Degişiklkten sonra bilgileri yeniden yüklüyor //////////// *** FONKSİYON *** ////////////////////////////// //BİLGİLERİ GRİDVİEW ' E DOLDURUYOR ======================= private void PersonelleriGrideDoldur() DataTable DTpersonel = Personel.BilgileriOku(); //DataTable nesne içerisinde bilgileri yüklüyor. if (DTpersonel.Rows.Count > 0) //Eğer Okunan bilgi var ise GridView1.DataSource = DTpersonel; GridView1.DataBind(); else DTpersonel.Rows.Add(DTpersonel.NewRow()); GridView1.DataSource = DTpersonel; GridView1.DataBind(); int TotalColumns = GridView1.Rows[0].Cells.Count; GridView1.Rows[0].Cells.Clear(); GridView1.Rows[0].Cells.Add(new TableCell()); GridView1.Rows[0].Cells[0].ColumnSpan = TotalColumns; GridView1.Rows[0].Cells[0].Text = "Kayıt Bulunamadı"; class1.cs using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.OleDb; using System.Data.SqlClient; public class PersonelsCls string BaglantiYolu = ConfigurationManager.ConnectionStrings["VTbaglantisi"].ConnectionString; //BİLGİLERİ OKUYOR ================================================== public DataTable BilgileriOku() 9
if (Baglanti.State!= ConnectionState.Open) Baglanti.Open(); string Sorgu = "SELECT * FROM Personel"; OleDbDataAdapter DAdapter = new OleDbDataAdapter(Sorgu, Baglanti); DataTable DTable = new DataTable(); DAdapter.Fill(DTable); return DTable; //BİLGİLERİ KAYDEDİYOR ======================================== public void BilgileriKaydet(string Adi, string Soyadi, string Sehir, string MedeniDurumu) if (Baglanti.State!= ConnectionState.Open) Baglanti.Open(); string Sorgu = "INSERT INTO Personel (Adi, Soyadi, Sehir, MedeniDurumu) VALUES ('" + Adi + "','" + Soyadi + "','" + Sehir + "','" + MedeniDurumu + "')"; OleDbCommand Komut = new OleDbCommand(Sorgu, Baglanti); Komut.ExecuteNonQuery(); Baglanti.Dispose(); //BİLGİLERİ GÜNCELLİYOR ====================================== public void BilgileriGuncelle(int PersonelId, string Adi, string Soyadi, string Sehir, string MedeniDurumu) if (Baglanti.State!= ConnectionState.Open) Baglanti.Open(); string Sorgu = "UPDATE Personel SET Adi ='" + Adi + "', Soyadi ='" + Soyadi + "', Sehir = '" + Sehir + "', MedeniDurumu ='" + MedeniDurumu + "' WHERE PersonelId=" + PersonelId; OleDbCommand Komut = new OleDbCommand(Sorgu, Baglanti); Komut.ExecuteNonQuery(); Baglanti.Dispose(); //KAYIT SİLİYOR ============================================== public void KayitSil(int PersonelId) if (Baglanti.State!= ConnectionState.Open) Baglanti.Open(); string Sorgu = "DELETE * FROM Personel WHERE PersonelId =" + PersonelId; OleDbCommand Komut = new OleDbCommand(Sorgu, Baglanti); Komut.ExecuteNonQuery(); Baglanti.Dispose(); 10
web.config <connectionstrings> <add name="vtbaglantisi" connectionstring="provider=microsoft.jet.oledb.4.0;data Source=" DataDirectory /SanayimizComVeritabani.mdb"" providername="system.data.oledb"/> </connectionstrings> 11