C# : SQL Server Stored Procedure Kullanımı

Önceki yazımızda SQL Server da nasıl Stored Procedure yazılırcsharp C# : SQL Server Stored Procedure Kullanımı sql server dot net c sharp onu anlatmıştım (bu yazıya başlamadan belirttiğim yazıyı okumanızı tavsiye ederim). Bu yazımda C# tarafında oluşturduğuz prosedürü nasıl kullanabiliriz, onu göstereceğim inş icon smile C# : SQL Server Stored Procedure Kullanımı sql server dot net c sharp

Önceki yazımızda hatıralarsanız kendi sınıfımızı yazmıştık verileri saklamak için. Yine aynı yolu izliyeceğiz.
Kullanımı o kadar da zor değil. İlk önce aşağıdaki kodu inceleyelim, sonra da açıklayalım.

Kategorilerimizi sakladığımız sınıfımız şöyle ;

using System;

namespace OrnekUygulama
{
    class KategoriInfo
    {
        int katID;
        public int KatID
        {
            get { return katID; }
            set { katID = value; }
        }

        string katAdi;
        public string KatAdi
        {
            get { return katAdi; }
            set { katAdi = value; }
        }

        public KategoriInfo(int katIDs,string katAdi)
        {
            this.KatAdi = katAdi;
            this.KatID = katID;
        }
    }
}


Sınıfı neden oluşturduğumuzdan bahsetmeyeceğim, yukarıda belittiğim yazıda detaylı olarak bahsedilmiştir.

Şimdi gelelim Stored Precedure kullanımına;

   SqlConnection con = new SqlConnection("Connection Stringimiz..");
            SqlCommand cmd = new SqlCommand("KategorileriGetir", con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter _param = new SqlParameter("@kategoriDurum", SqlDbType.Int);
            _param.Value = 1;
            cmd.Parameters.Add(param);
            SqlDataReader _dr = cmd.ExecuteReader();
            List<KategoriInfo> listem = new List<KategoriInfo>();

            while (_dr.Read())
            {
                KategoriInfo info = new KategoriInfo(_dr.GetString(1), _dr.GetInt32(0));
                listem.Add(info);
            }
//Bu satırdan itibaren verilerimiz listem nesnesinde saklıdır. Bundan sonrası size kalmış : )

Şimdi ne yaptık onu açıklayalım.
2. Satırda
SqlCommand da CommanString i yerine prosedürümüzün adını yazdık.

3.Satırda
Daha sonra SqlConnection’a dedik ki ; sana verdiğimiz string i commandtext olarak algılama bunun tipi bir Stored Procedure ona göre davran. (Stored Procedure kullanmadığımız zamanlarda varsayılan değeri CommandText olarak atanır)

Bu prosedürümüz dışarıdan değer alıyor mu ? Evet alıyor
4. Satırda
Prosedürümüz parametre alıyorsa bizim bu parametreyi göndermemiz gerekiyor. O yüzden 4. satırda yeni bir parametre tanımladım. Ve dedim ki ; bu parametremin adı “@kategoriDurum” değeri ise SqlDbType.Int dir.
5.Satırda
Buraya kadar parametremizi tanımlamıştık, şimdi ise parametremizin değerini giriyoruz.
6.Satırda
Son olarak ta SqlCommand a dedimki, sen şu parametreyi al sakla, sana verdiğim prosedürü çalıştırırken bu parametrelere ihtiyacın olacak ve Add metodu ile SqlParameter tipinde olan _param i ekledik.
Eğer parametreleriniz çok ise, tek tek SqlParameter tipinde değerler oluşturmayın. SqlParameter[] olarak tanımlayın ve SqlCommand a AddRange metodu ile oluşturduğunuz diziyi ekleyin.

Gerisi zaten normal sql command çalıştırma ile aynı olduğundan burada nokta koyuyorum icon smile C# : SQL Server Stored Procedure Kullanımı sql server dot net c sharp

Tags: , , , , , , , , , ,

1 Comment

  1. Sade ve açıklayıcı anlatım için teşekkürler. Bu arada, 6. satıdarki cmd.Parameters.Add(param); parantez içerisindeki değişken _param olması gerekiyor.

Trackbacks/Pingbacks

  1. SQL Server : Stored Procedure hk. | Nurullah DEMİR - [...] Parametrelerimizin default özellikleri input dur. Yani parametre dışarıya değerini göndermez, dışardan aldığı değer ile içeride işlem yapar ve işlemi ...

Yorum yaz

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ads