24 Temmuz 2013 Çarşamba

C# ile Stored Procedure Kullanımı

      Merhabalar bir önceki yazımda SQL Server'da Stored Procedure (SP) oluşturmayı anlatmıştım. Şimdi ise bu oluşturduğumuz SP'yi uygulamalarımızda nasıl kullanacağımıza bakacağız. Ben örnek olarak C# dilinde kayıt ekleyebileceğimiz basit bir uygulama yapacağım. 

      Öncelikle bir adet form uygulaması açalım ve 4 adet textbox ve birer tane datetimepicker ile buton ekleyelim. ilk olarak kullanacağımız SP'yi yazalım. Kayıt ekleyeceğimiz SP şu şekilde olacak:


CREATE PROCEDURE sp_uye_ekle
@UyeAdi nvarchar(50),
@UyeSoyadi nvarchar(50),
@UyeTel nvarchar(50),
@UyeMail nvarchar(50),
@Baslangic_Tarihi datetime
AS
BEGIN
      SET NOCOUNT ON;
      INSERT INTO UyeTablosu
      VALUES(@UyeAdi, @UyeSoyadi, @UyeTel, @UyeMail, @Baslangic_Tarihi)
END

      Gördüğünüz gibi dışarıdan ad, soyad, telefon, mail ve kayıt tarihini alıyoruz. ID otomatik artan olduğu için burada kullanmadık. Execute deyip derliyoruz SP'mizi. Bir önceki yazımda buna değinmiştim. Şimdi gelelim bunu C# içerisinde nasıl kullanacağımıza, ilk olarak global değişken olarak bağlantı ve komut nesnelerimiz tanımlıyoruz. 


SqlConnection baglanti = new SqlConnection();
SqlCommand komut = new SqlCommand();

Daha sonra ise Form_Load kısmına ConnectionString ifademizi yazıp bağlantımızı açıyoruz arkasından.


baglanti.ConnectionString = "……"; //ConnectionString ifademiz gelecek buraya
baglanti.Open();

Butonumuzun click event'ına gelelim şimdi, kodlarımız şu şekilde: 


komut.Connection = baglanti;
komut.CommandType = CommandType.StoredProcedure;

komut.CommandText = "sp_uye_ekle";

komut.Parameters.Add("@UyeAdi", adTXT.Text);
komut.Parameters.Add("@UyeSoyadi", soyadTXT.Text);
komut.Parameters.Add("@UyeTel", telTXT.Text);
komut.Parameters.Add("@UyeMail", email);
komut.Parameters.Add("@Baslangic_Tarihi",            Convert.ToDateTime(dateTimePicker1.Value.ToShortDateString()));
komut.ExecuteNonQuery();
komut.Parameters.Clear();

      Burada dikkat edeceğimiz noktalar ise komut değişkenimizin tipini Stored Procedure olarak belirtmemiz, CommandText kısmına SQL sorgusu yerine SP'mizin adını yazmak, parametrelerimizi eklerken tiplerine dikkat etmek ve son olarak da parametrelerimizi Clear ile temizlemek, yoksa daha sonra tekrar SP'yi çalıştıracağımızda hatalar ile karşılaşıyoruz. 
Store Procedure oluşturmayı ve bir uygulama içinde kullanmayı öğrenmiş olduk. Entity framewok yada LinQ ile uğraşanlar bu şekilde ConnectionString yazmayı sevmezler :) Bir sonraki yazımda Entity Framewoka giriş yapacağım bende. Daha sonra Entity Framework içinde de Store Procedure nasıl kullanılır değineceğiz. Herkese iyi çalışmalar :)


Hiç yorum yok:

Yorum Gönder

SQL Server Row_Number Komutu ve 2 Tablo Arasında Update İşlemi

Merhabalar, Bu notumda  ROW_NUMBER ()  komutundan bahsedeceğim ve daha sonrasında ise iki tablo arasında nasıl güncelleme yaparız ondan ba...