Bu yazımda  sizlere veri tabanında kullanılan  fonksiyon benzeri bir görevi olan  stored procedureleri anlatacağım.

Geniş kapsamlı projelerde mutlaka stored procedurler kullanılır.Dilimizde  saklı yordam  demektir. Veri tabanın da  tutulan ve  ilk derlenmeden  sonra  bir  daha derlenmeye ihtiyaç duymayan sql ifadeleridir.Bu özelliği nedeniyle  yazdığımız  uygulamalara  hız kazandırmaktadır.Uygulamalarda yazılırken SP olarak  adlandırılırlar.

Stored Procedurlerin Avantajları Nelerdir?

1-Stored Procedurler Databese(Verittabanı) Server ‘ da tutuldukları için  1 defa derlendikten sonra  bir daha derlenmeye  ihtiyaç duymazlar buda hızlı çalışmalarını sağlar.

2-Bir veritabanı  sorgusu değiştirmek  istersek bunu sadece stored procedure içerisinde  değiştirmemiz yeteri olacaktır. Diğer türlü komutu yazdığımız her yerde  sorguyu değiştirmemiz gerekecekti.

3- Sadece Giriş ve  çıkış parametreleri uygulama katmanında göründüğü için daha güvenlidir.

Stored Procedure Syntaxı ?

CREATE PROCEDURE [Procedure İsmi buraya yazılır]

(

@kullanciId int,

@KullaniciAdi nchar(10),

@Sifre nchar(10)

– -girilecek parametre değerleri buraya yazılıcak

)

WITH  { RECOMPILE ENCRYPTION }  – – ENCRYPTION  ifadesi  yazılan kodun şifrelenmesi demektir

AS

BEGIN

– -BEGIN END Kullanılması zorunlu degildir. Sorgularımız buraya yazılır

END

 

Şimdi bir stored procedure oluşturalım  ve  kod  tarafında  kullanımını  inceleyelim ;

CREATE PROCEDURE  sp_KayitEkle

(

@AD NVARCHAR(10),

@SOYAD NVARCHAR(10)

)

AS

INSERT İNTO UYE_Tablosu (AD,SOYAD) VALUES(@Ad,@SOYAD)

Görüldügü gibi procedure’ümüz iki tane deger aliyor (ad ve soyad) ve bunlari UYE_TABLO isimli tablonun AD ve SOYAD sütunlarina ekliyor. Simdiki asama C#’ta bu storedprocdure’ü kullanmak için gerekli baglantilari yapmak. Bu baglantilari da bir metot içinde kullanmak istiyorum

public void KAYIT(string ad, string soyad)

{

SqlConnection mycon = new SqlConnection();

SqlCommand mycommand = new SqlCommand();

mycommand.Connection = mycon;

mycon.ConnectionString = “”;//connectionstring buraya yazilmalidir

mycon.Open();

mycommand.CommandText = “sp_KayitEkle”;

mycommand.CommandType = CommandType.StoredProcedure;

mycommand.Parameters.Add(“@AD”, SqlDbType.NVarChar, 50);

mycommand.Parameters[“@AD”].Value = ad;

mycommand.Parameters.Add(“@SOYAD”, SqlDbType.NVarChar, 50);

mycommand.Parameters[“@SOYAD”].Value = soyad;

mycommand.ExecuteNonQuery();

mycon.Close();

 

}

Gördügünüz gibi KAYIT metodu veritabanindaki sp_KayitEkle isimli procedure’ü kullaniyor, ad ve soyad isminde iki tane string parametre aliyor ve geriye deger döndürmüyor.

mycommand.Parameters.Add(“@AD”, SqlDbType.NVarChar, 50);

mycommand.Parameters[“@AD”].Value = ad;

satirlari procedure’ümüze parametre göndermek için kullanilir. SqlDbType yazdiktan sonra nokta koyunca sql’deki parametre tiplerini hepsi görünmektedir(int,datetime gibi).

Bu yazımda sizlere C# da stored procedure oluşturmayı ve  kod tarafında oluşturduğumuz stored procedurlerin kullanımını anlattım .

 

İyi Çalışmalar Herkese.

 

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz