.NET (C#) Gridview Update-Delete

Gridview üzerinde kod yazmadan güncelle-silme işlemleri...

Merhaba Arkadaşlar,

Bu uygulamada .Net ile Access ten veri çekip Gridview e aktaracağız.Ve bu çektiğimiz verileri gayet kullanışlı ve basit bir şekilde Update(Güncelle) ve Delete(Silme) nasıl olur göreceğiz.Resim yükleyemediğim için maalesef resimsiz anlatıyorum.

Öncelikle Sayfamıza bir tane Gridview ekliyoruz ve sağ üst köşesinde çıkan ok işaretine tıklayıp açılan Gridview Tasks menüsünden Choose Data Source kısmından <..new data source..> kısmını seçiyoruz.Benburada Access kullandığım için Access Database'i seçip devam diyorum.Burada karşımıza çıkan Browse kısmından App_Data içinde bulunan ve kullanmayı düşündüğümüz veritabanını seçiyoruz.

Kullanacağımız Tablo ve bu tabloya ait alanları belirledikten sonra Advanced butonuna basıp oarada bulunan Generate Insert,Update,Delete Statements kısmını seçili hale getiriyoruz.Burada dikkat etmemiz gereken nokta kullanacağımız tablonun sutunlarını seçerken * ile değilde teker teker seçmemiz olacak.Aksi halde Advanced kısmında "Generate Insert,Update,Delete Statements" kısmı pasif olarak gelecektir.

Neyse tüm bunları yaptıktan sonra eğer ilk eklediğiniz DataSource ise ve default ismini değiştirmediyseniz sayfanızın aşağısında AccessDataSource1 ismiyle gelecektir.Bu datasource seçili halde iken sayfanızın Source kısmına geçtiğinizde aşağıdaki kodu göreceksiniz.


<asp:AccessDataSource ID="AccessDataSource1" runat="server" 

                    DataFile="~/App_Data/Calisma.accdb" 

                    DeleteCommand="DELETE FROM [Personel] WHERE (([TAKIP] = ?) OR ([TAKIP] IS NULL AND ? IS NULL))" 

                    InsertCommand="INSERT INTO [Personel] ([TAKIP], [ADI], [SOYADI], [ADRES], [TEL], [MAIL]) VALUES (?, ?, ?, ?, ?, ?)" 

                    SelectCommand="SELECT [TAKIP], [ADI], [SOYADI], [ADRES], [TEL], [MAIL] FROM [Personel]" 

                    UpdateCommand="UPDATE [Personel] SET [ADI] = ?, [SOYADI] = ?, [ADRES] = ?, [TEL] = ?, [MAIL] = ? WHERE (([TAKIP] = ?) OR ([TAKIP] IS NULL AND ? IS NULL))">

                    <DeleteParameters>

                        <asp:Parameter Name="TAKIP" Type="String" />

                    </DeleteParameters>

                    <InsertParameters>

                        <asp:Parameter Name="TAKIP" Type="String" />

                        <asp:Parameter Name="ADI" Type="String" />

                        <asp:Parameter Name="SOYADI" Type="String" />

                        <asp:Parameter Name="ADRES" Type="String" />

                        <asp:Parameter Name="TEL" Type="String" />

                        <asp:Parameter Name="MAIL" Type="String" />

                    </InsertParameters>

                    <UpdateParameters>

                        <asp:Parameter Name="ADI" Type="String" />

                        <asp:Parameter Name="SOYADI" Type="String" />

                        <asp:Parameter Name="ADRES" Type="String" />

                        <asp:Parameter Name="TEL" Type="String" />

                        <asp:Parameter Name="MAIL" Type="String" />

                        <asp:Parameter Name="TAKIP" Type="String" />

                    </UpdateParameters>

                </asp:AccessDataSource>


Bu haliyle uygulamanızı çalıştırırsanız sadece Select kısmı çalışacaktır.Update veya Delete kısmını kullandığınızda parametrelerle ilgi bir hata alacaksınız.Bu sorunu çözmek çok basit.Command satırlarında ? gördüğünüz yerler @parametrenizin ismi yazarsanız sorun düzelecektir.Örneğin UpdateCommand kısmı için düzeltme yaparsak,

UpdateCommand="UPDATE [Personel] SET [ADI] = @ADI, [SOYADI] = @SOYADI, [ADRES] = @ADRES, [TEL] = @TEL, [MAIL] = @MAIL WHERE (([TAKIP] = @TAKIP) OR ([TAKIP] IS NULL AND @TAKIP IS NULL))"


şeklinde olması gerekir.

Sanırım yapıların isimlerinden ne anlama geldiklerini anlamışsınızdır.Command cümleleri bu butonlara tıkladığınızda çalışacak olan sql cümleleri,Parameters tagleri içindekiler de gördüğünüz üzere parametre türlerini tutmaktadır.

Artık Gridviewinize bir stil vermek de size kalmış bişey.

Umarım faydalı olmuştur...

İyi günler
  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Bu arada eklemeyi unuttuğum 1-2 özellik kalmış hemen ekliyorum : [code]<asp:GridView ID="gwPers" runat="server" DataSourceID="AccessDataSource1" [b]DataKeyNames="TAKIP" [/b] AutoGenerateColumns="False" AllowPaging="True" CellPadding="4" ForeColor="#333333" GridLines="None"> [/code] Yukardaki satırda önemli olan DataKeyNames kısmı burda ID olarak kullandığımız,Anahtar olan olacaktır.Bunu dışında : [code] <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> .... <Columns> [/code] columns tagleri içinde Delete ve Edit özelliklerinin True olmasına dikkat etmeliyiz...

Yukarı Git