04 Mar 2007 ASP.NET İle Stored Procedure Kullanımı – 2 Kategori: ASP.NET Etiketler: ASP.NETSQL ServerADO.NET 2 Yorum Merhaba arkadaşlar, bu makalemizde ASP.NET İle SQL Server üzerinde Insert, Update ve Delete işlemleri yapan Stored Procedureleri oluşturup, oluşturduğumuz store procedurleri ASP.NET Projemizde kullanacağız…Bir önceki makalemizde Bize datayı listeleyen Stored Procedure olusturup bunu ASP.NET içinde kullanmıstık. Bu makalemizde ise Ekleme, Çıkarma ve Güncelleme Stored Proc. Ekleyecek ve bunu asp.net sayfalarında kullanacagız. Insert: Tablumuza Kayıt ekliyoruz. Not: Person.Contact Tablosuna kayıt eklemek için Allov null alanları seçili olmayan fieldları seçelim. SP'yi düzgün yazsak bile çalısmayacaktır. Create Proc InsertPerson @FirstName varchar(20), @LastName varchar (20) as Insert Into Person.Contact (FirstName,LastName) values (@FirstName, @LastName) Sp'mizi Test edelim.. InsertPerson 'sem','göksu' // Bakalım Eklemismi ? Simdi bu islemi ASP.NET tarafında da yapalım. Olusturmus oldugumuz projeye yeni bir sayfa ekleyelim ve sayfamız üzerine 2 textbox ve 1 button ekleyelim. Button'un Click eventine asagıdaki kodları yazalım; protected void Button1_Click(object sender, EventArgs e) { try { Cnn = new SqlConnection("Data Source=localhost; Initial Catalog=AdventureWorks; trusted_connection=yes"); Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.CommandText = "InsertPerson"; Cmd.Parameters.AddWithValue("@FirstName", TextBox1.Text); Cmd.Parameters.AddWithValue("@LastName", TextBox2.Text); Cmd.Connection = Cnn; if (Cnn.State == ConnectionState.Closed) Cnn.Open(); int result = Cmd.ExecuteNonQuery(); Response.Write(result.ToString() + " Kayıt Eklendi..."); } catch (Exception ex) { Response.Write(ex.Message); } } Insert islemimizi tamamladık simdi Update Islemine geçebiliriz. Update: Varolan bir kaydı güncelliyoruz. Create Proc UpdatePerson @ExFirstname varchar(20), @NewFirstname varchar(20) as Update Person.Contact Set FirstName = @NewFirstname where FirstName=@ExFirstname Test edelim; UpdatePerson 'Crystal','Penguen' (22 row(s) affected) > 22 tane Firstname'i Crystal olan kayıt person ile degistirildi. Simdi Asp.net tarafını yazalım; Yeni Bir sayfa ekleyelim ve sayfamıza 2 textbox ve 1 button girelim. 1. textbox'a güncellenecek olan Firstname'i ve 2.textbox'ada yeni degeri girecegiz. Buton ile de islemi gerçeklestirecegiz. Button'un click eventine asagıdaki kodları yazalım; protected void Button1_Click(object sender, EventArgs e) { try { Cnn = new SqlConnection("Data Source=localhost; Initial Catalog=AdventureWorks; trusted_connection=yes"); Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.CommandText = "UpdatePerson"; Cmd.Parameters.AddWithValue("@ExFirstname", TextBox1.Text); Cmd.Parameters.AddWithValue("@NewFirstname", TextBox2.Text); Cmd.Connection = Cnn; if (Cnn.State == ConnectionState.Closed) Cnn.Open(); int result = Cmd.ExecuteNonQuery(); Response.Write(result.ToString() + " Kayıt güncellendi..."); } catch (Exception ex) { Response.Write(ex.Message); } } Hemen test edelim; Sp'yi test ederken Firstname'i Crystal olan kayıtları penguen ile degistirmistim. Simdi yeniden eski degeri ile update etmis oldum. 22 adet kaydın güncellendigini görüyoruz. Delete: Tablomuzdan kayıt siliyoruz. Stored Proc. Olusturalım. Not: Eger Sizde benim kullandıgım gibi Person.Contact tablosunu kullanacaksanız tablo Üzerindeki Foreign keyleri kaldırın. Yoksa kayıtları silemeyeceksiniz. create proc DeletePerson @Firstname varchar(20) as Delete from Person.Contact where FirstName = @Firstname SP'yi test edelim. DeletePerson 'Gustavo' (2 row(s) affected) > Gustavo adın da 2 kaydı sildi.. Simdi son olarak da bunun asp.net tarafını yapalım. Yeni bir sayfa ekleyelim ve sayfamıza 1 textbox ve 1 button ekleyelim. Daha sonra butonun click eventine asagıdaki kodları yazalım; protected void Button1_Click(object sender, EventArgs e) { try { Cnn = new SqlConnection("Data Source=localhost; Initial Catalog=AdventureWorks; trusted_connection=yes"); Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.CommandText = "DeletePerson"; Cmd.Parameters.AddWithValue("@Firstname", TextBox1.Text); Cmd.Connection = Cnn; if (Cnn.State == ConnectionState.Closed) Cnn.Open(); int result = Cmd.ExecuteNonQuery(); Response.Write(result.ToString() + " Kayıt silindi..."); } catch (Exception ex) { Response.Write(ex.Message); } } Testimizi yapalım; Firstname'i "Sem" olan 5 kayıt vardı ve biz bunu stored procedurumuzü çalıstırarak sildik.. Bu makalenin de sonuna geldik, Baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSUMCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@semgoksu.com Kaynaklar http://msdn.com Yorum (2) Birtan YILDIZ / 19.3.2009 19:47:36 insert ile yazmış olduğum procedurelar çalışmıyor :(. dediğiniz gibi allow nulls özelliğine de dikkat ettim ama hep hata veriyor ve hata şu şekilde incorrect syntax near @eposta must declare the scaler variable @isim. Tevfik Tekin / 10.12.2017 21:53:45 hocam anlatım güzel işime de yaradı çok teşekkürler Yorum Yaz * Ad Soyad: * Email: * Message:
Yorum (2) Birtan YILDIZ / 19.3.2009 19:47:36 insert ile yazmış olduğum procedurelar çalışmıyor :(. dediğiniz gibi allow nulls özelliğine de dikkat ettim ama hep hata veriyor ve hata şu şekilde incorrect syntax near @eposta must declare the scaler variable @isim. Tevfik Tekin / 10.12.2017 21:53:45 hocam anlatım güzel işime de yaradı çok teşekkürler
Birtan YILDIZ / 19.3.2009 19:47:36 insert ile yazmış olduğum procedurelar çalışmıyor :(. dediğiniz gibi allow nulls özelliğine de dikkat ettim ama hep hata veriyor ve hata şu şekilde incorrect syntax near @eposta must declare the scaler variable @isim.