.NET Framework C# ta Stored Procedure Nasıl Kullanılır

Normal bir c# uygulaması yaptığınızda sql’le bağlantı kurmak için bir SqlConnection nesnesi, bir SqlCommand nesnesi ve duruma göre SqlDataReader veya SqlDataAdapter nesneleri kullanırız. Bunda da ayni nesneleri kullanacağız. Fakat tek farklılık sqlcommand nesnesinde olacak

Öncelikle bir procedure olusturalim:

Oluşturulan bu Srore procedure’ü ile bağlantıları yapıp metod içinde kullanacağız,

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

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). Simdi burada dikkat etmemiz gereken bir kaç husus var.

  1. StoredProcedure’de nesneleri hangi siraya göre yazdiysak (yani bizim örnek için önce ad sonra soyad) C#’tan da o siraya göre tanitmaliyiz. Yani önce soyad sonra ad parametrelerini gönderemeyiz.
  2. Veritabaninda parametrelerin önüne @ isareti koydugumuz için C#’ta da  parametreleri göndermek için  @ isareti kullanmamiz gerekir: “@AD”gibi
  3. Parametrelerdeki büyük küçük harf farkliligina dikkat etmeliyiz. Yani procedure’de @AD olarak tanittigimiz parametreyi C#’ta @ad olarak gösteremeyiz.

Su ana kadarki kisimda veritabanimizda olusturdugumuz bir procedure’e nasil ulasacagimiz gördük. Simdi eger bu procedure deger döndürüyorsa nasil kullanacagiz? Önceki makalemde stored procedure’lerin nasil deger döndürdügünü ve niçin buna ihtiyaç duyuldugunu anlatmistim. Simdi bununla ilgili bir örnek yapalim:

Önce procedure’ümüzü biraz degistirelim. Ayni ad ve soyadda baska biri varsa kayit yapmasin ve geriye 0 degeri döndürsün. Eger yoksa kayit yapsin ve bize 1 degeri döndürsün.

Siradaki asama C#’ta bu procedure’ü kullanmak. Önceki örnekteki metotu bu procedure’e uygun olarak degistirecegiz ve dönüs degerini int olarak belirleyecegiz.

görüldüğü üzere

satırlarını ekledik ve dönüş değerini aldık.

Bu yazıda anlatıp yada kopyalayıp buraya olduğu bigi bırakıp geçmiyoruz, ne yapıyoruz peki? Bunun neden yapıldığını nerede kullanacağımızı yazıyoruz paylaşımcı insanlar gibi 🙂

Bu çalışma ile hesaplamaları ve işlemleri uygulamanın çalıştığı Application yada terminal serverda değilde Database de yaptırarak uygulamanın performansını arttırabilmek mümkün.

Teşekkürler.

Onur TURAN

It's only share now...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someonePin on Pinterest

Post navigation

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Eder. *