Stored Procedure

29.1.2010 21:56:00 Posted by Kenan KayaOkunma Sayısı: 5317

 

Stored Procedure

Bir web projesi için hız ve güvenlik söz konusu ise bunu bize sağlayan bazı fonksiyonlardan biridir Stored Procedureler. Web tarafında veritabanı için sorgu gönderilecek ve bu sorgulara cevap gelecek. Biz veritabanımızda bize gelebilecek olan sorguları içerde(veritabanında) hazır sorgu blokları oluşturup bunu içerde tutarız. Tutulan ve kullanım için hazırda bekleyen bu bloklar Stored Procedure' dir. SELECT, UPDATE, DELETE gibi SQL komutlarını projemizin kod tarafında kullanmak yerine veritabanımızda daha önceden oluşturduğumuz Stored Procedurelerde tutarız ve kod tarafından procedure'ün adını çağırmamız yeterli olacaktır . Bu bize hem performans hem de üye(user) işlemlerinde "injection" yememizi önleyecektir.

 

MsSql 2008 arayüzümde bir Query ekranı açarak Procedure yazmaya başlıyorum:
 
           CREATE PROCEDURE CalisanlariGetir
           AS
           Select FirstName from employees
 
 
 Şimdi de web uygulamamda "Procedure" çağırıyorum:
 
            SqlConnection conn = new SqlConnection("server=.;initial catalog=Northwind;integrated security=true");
            SqlCommand comm = new SqlCommand("CalisanlariGetir",conn);
            comm.CommandType = CommandType.StoredProcedure;
            conn.Open();
            SqlDataReader rd = comm.ExecuteReader();
            while(rd.Read())
            {
                ListBox1.Items.Add(rd["FirstName"].ToString());
            }
            rd.Close();
            conn.Close();
       

Parametre ile sorgu:

Aynı veritabanına şimdide çalışan ekleyelim:       

Çalışan eklerken 3 adet parametre(değişken) oluşturdum bu değerleri dışarıdan alacak ve ekleme işlemini projemdeki TextBox'lardan alacağı değerler ile gerçekleştirecek.
 
CREATE PROCEDURE [dbo].[CalisanEkle]
@Ad nvarchar(50),
@Soyad nvarchar(50),
@Sehir Nvarchar(50)        
AS
INSERT INTO employees(FirstName, LastName, City) VALUES (@Ad, @Soyad, @Sehir)
 
 
Uygulamamdaki cs dosyamda yukarıda yazdığım Procedure'ü çağırıyorum:
 
            SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=True");
            SqlCommand comm = new SqlCommand("CalisanEkle",conn);
            comm.CommandType = CommandType.StoredProcedure;
            comm.Parameters.AddWithValue("@Ad", TextBox1.Text);
            comm.Parameters.AddWithValue("@Soyad", TextBox2.Text);
            comm.Parameters.AddWithValue("@Sehir", TextBox3.Text);
            conn.Open();
            comm.ExecuteNonQuery();           
            Label1.Text = "eklendi";
            conn.Close();
 
Parametrelerime denk gelen kontrolleri belirttim. Textbox'lardan alacağı değerler ile işlem yapacaktır. Burada Parametreler güvenlik açısından büyük öneme sahiptir. 


ETİKETLER: Stored Procedure, Stored Procedure Nedir, Stored Procedure Kullanımı, Parametre ile sorgu,

Yorumlar

Ömer(14.11.2012 / 18:00)

teşekkürler...