ASP.NET İle Store Procedure Kullanımı – 2 (No Wizard)
04.03.2007 17:46:44
Merhaba arkadaşlar, bu makalemizde ASP.NET İle SQL Server üzerinde Insert, Update ve Delete işlemleri yapan Store Procedureleri oluşturup, oluşturduğumuz store procedurleri ASP.NET Projemizde kullanacağız…
Puan:
     

Bir önceki makalemizde Bize datayı listeleyen Store Procedure oluşturup bunu ASP.NET içinde kullanmıştık. Bu makalemizde ise Ekleme, Çıkarma ve Güncelleme Store Proc. Ekleyecek ve bunu asp.net sayfalarında kullanacağı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ışmayacaktı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 Eklemişmi ?



Şimdi bu işlemi ASP.NET tarafında da yapalım…

Oluşturmuş olduğumuz projeye yeni bir sayfa ekleyelim ve sayfamız üzerine 2 textbox ve 1 button ekleyelim.

Button’un Click eventine aşağı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 işlemimizi tamamladık şimdi Update İşlemine 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 değiştirildi…

Şimdi 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 değeri gireceğiz. Buton ile de işlemi gerçekleştireceğiz. Button’un click eventine aşağı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 değiştirmiştim. Şimdi yeniden eski değeri ile update etmiş oldum. 22 adet kaydın güncellendiğini görüyoruz…

Delete: Tablomuzdan kayıt siliyoruz… Store Proc. Oluşturalım…

Not: Eğer Sizde benim kullandığı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..

Şimdi 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 aşağı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 store procedurumuzü çalıştırarak sildik….

Bu makalenin de sonuna geldik, Başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.

Sem GÖKSU
MCP | MCAD.NET | MCTS

Örnek Kodlar için mail adresimi kullanabilirsiniz
semgoksu@semgoksu.com

Kaynaklar
http://msdn.com
 
Puan: