MsSql Procedure Yazmak

Temmuz 20, 2011

Merhaba arkadaşlar , bugünkü yazımda mssql 2008 de stored procedure ‘ lerin nasıl yazıldığını fazla detaya girmeden c# ile örnek yaparak anlatmaya çalışacağım.İlk önce mssql 2008  de procedure yazabilmek için yapmamız gerekenlere bakalım.

 

 

 

Ben Proc adında yeni bir tane veri tabanı oluşturdum içerisinde gördüğünüz gibi dallanmış bir yapı var bu yapılar bizim veri tabanımıza hükmetmemizi sağlayan kısımlardır Procedure yazabilmek için ilk olarak Proc adının yanındaki + işaretine tıklayalım açılan kısımdan Programmability ‘yi tıklayalım daha sonra Stored Procedure kısmını ekranda olduğu gibi sizinde görüyor olmanız lazım daha sonra bu Stored Procedure yazan kısma sağ tıklayıp New Stored Procedure seçenegini seçiyoruz.

 

 

Hemen açılan bölümde karşınıza bu şekilde bir alan gelecek bu kısımdaki tüm yazanları siliyoruz sayfamız boş olarak devam edelim.Ancak procedure’ lerin çalışabilmesi için ilk olarak veri tabanındak, herhangi bir tabloda işlem yapması lazım bu yüzden procedure yazamadan önce Kullanicilar adında tablomuzu oluşturalım ve içinde KullaniciAdi , Sifre , Ad,Soyad  alanları bulunsun.Bunun içinde ilk resimde gördüğünüz Tables alanının üstüne gelip sağ tıklıyoruz ve New Table seçeneğini seçiyoruz ardından tablomuz oluşturmamız için hazır şimdi belirttiğimiz gibi alanlarımızı oluşturalım.

 

 

Alanlarımızı oluşturduktan sonra kaydet meden önce yapmamız gereken bazı önemli noktalarda var gördüğünüz gibi tablomuzda Id alanıda oluşturdum bunun sebebi bu tablodaki kaydedilen kişilere benzersiz bir numara atamak istemem benzersiz olmasınız sebebi daha sonra tablo üzerinde bir sorgulama yapacağım zaman bu Id alanlarından yararlanacak olamam.Id alanını benzersiz artan bir sayı olarak ayarlamak için ekrandaki gibi satıra tıkladıktan sonra aşağıdaki Column Properties kısmadaki Identity Specification alanının yanındaki + işaretine tıklayın ve altında açılan (Is Identity) yazan kısmın karşısındaki No seçeneğini Yes olarak değiştirin böylelikle Id alanı benzersiz ve sürekli artan bir alan olacaktır.Bu ayarı yaptıktan sonra ekrandaki gibi tablomuzun alanlarını oluşturalım ve kaydedelim kaydetme sırasında bizden tablo ismi istecektir tablomuzun ismi Kullanicilar olsun.Küçük bir not : Data Type yazan alanlardaki nvarchar(50) kısmı alanların string olacağı anlamına gelmektedir ve kelimenin başında yazan n ise bu alana ne kadar harf yazılırsa o kadar ama en fazla 50 karakter’e kadar büyü anlamına gelmektedir.Örnegin : Can yazılırsa 3 karakterlik bir alan olur Gökhan yazılırsa 6 karakterlik bir alan olur ama en fazla 50 karakter alabilir.Allow Nulls yazan kısımlardaki alanların tik ‘ini kaldırdım bu kısımda alanların boş geçilip geçilemeyeceğinin belirlendiği kısımdır eğer kutucuklar tik’li değil se alanlar boş geçilemez anlamına gelmektedir.Tablomuzu bu şekilde oluşturuyoruz ve kaydediyoruz.Procedure ile bu tablomuzu veri ekleme işlemi yapıcaz.Veri tabanımız ve tablomuz hazır olduğuna göre şimdi procedure’mizi yazmaya geçebiliriz.C#’ programımızdan göndereceğimiz verileri veri tabanına kaydeden bir procedure yazalım.

 

 

Yazdığımız procedure ‘ yi anlatmaya geçmeden önce yapmamız gereken bazı şeyler var bunlar ise ilk olarak procedure ekranızı temizledikten sonra sol üstte bulunan veri taba adlarının yazdığı kısımı Proc olarak ayarlamak yani procedure ‘ mizi hangi veri tabanına yazıyor isek o veri tabanını seçmemiz lazım daha sonra create diye başlıyoruz bu ifade yaratmak anlamına gelmektedir ondan sonra gelen proc ise procedure kelimesinin kısaltılmış halidir siz istediğinizi kullanabilirsiniz.KullaniciKaydet ise procedure ‘ mizin adıdır daha sonra bu procedurenin alacağı parametreleri yazıyoruz tabiki @ işareti ile başlıyoruz ve yanlarına veri tabanındaki alanları yazıyoruz tablomuzu oluştururken nvarchar(50) dediğimiz için ben öyle yazdım siz veri tabanında başka bir şekilde belirtirseniz buradada düzeltmemiz gerekmektedir.Parametrelerimizi aldıktan sonra yukarıda açtığımız parantezi kapatıyoruz ve as ekliyoruz daha sonra ise kaydetme kodlarımızı yazıyoruz insert into ile kayıt yapıcağımız bilgisini veriyoruz daha sonra hangi tabloya veri kaydedeceğimizi belirtiyoruz parantezler içinde yazan alanların sırası çok önemlidir ilk olarak KullaniciAdi yazdığımız için values içindeki ilk alanada @KullaniciAdi yazıyoruz diyer alanlarıda aynı şekilde sırası ile yazıyoruz ve en sonunda yukarı sol tarafta bulunan Execute buton’una basıyoruz ve hatasız yazdığımız için bize procedurenin oluşturulduğunu belirten bir yazı çıkardı.Genel olarak procedure yazım şeklini yazacak olursak :

 

        create proc Procedure Adı ( Alınacak Parametreler ) as İşlemler

 

Şimdi bu procedure ‘ mizi c# tarafında nasıl kullanacağımıza bakalım visual studio ‘ da yeni bir tane proje oluşturuyorum adını Proc olarak ayarlıyorum. 

 

 

Basit olarak sadece kayıt yapacağımız için bu formu hazırladım bilgilerimizi textBox ‘ lara girip kaydet dediğimiz zaman procedure yardımı ile verilerimizi kaydedicez.Şimdi kaydet buton’umuza göz atalım.

 

 

SqlConection nesnesi ile veri tabanımıza bağlanıyoruz ve bağlantımızı açıyoruz daha sonra SqlCommand nesnemizde gördüğünüz gibi normalde sorgularımızı yazdığımız yere procedure’mizin adını yazıyoruz formdan gelen bilgilerimizi parametre olarak gönderiyoruz  daha sonra ExecuteNonQuery diyerek çalışmasını sağlıyoruz ve bağlantımızı kapatıp  Dispose komutları ile nesnelerimizin hafızada kalmasını engelliyoruz.Bu yaptığımız işlem ile veri tabanımızda bulunan KullaniciKaydet  procedure ‘ mizi çalıştıracaktır ve parametre olarak gönderdiğimiz değerleri tablomuza kaydedecektir.Form alanından herhangi değerler girelim ve veri tabanımıza bir göz atalım.

 

 

 

 

Bu şekilde procedure kullanarak veri tabanında işlemler yapabiliriz.

 

NOT : Stored Procedure ‘ ler sadece 1 kere yazılır veri tabanına kaydedilir ihtiyacınız olduğu zaman c# tarafında adını yazarak ve parametrelerini göndererek kullanabilirsiniz her lazım olduğunda tekrardan yazmanıza gerek yoktur.

 

Kaynak Dosyaları Buradan İndirebilirsiniz

 

 

 

posted in SQL by gokhan

Follow comments via the RSS Feed | Yorum yapın | Trackback URL

Leave Your Comment

*

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org