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… |
|
|
|
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 |
|
|
|
|
|
|