"/>"/>
Yazılım Dilleri
Asp.Net 4.5 Kitabı
Skip Navigation Links

LINQ to SQL - Stored Procedure

LINQ to SQL ile SQL Server'da bulunan veritabanimizda olusturdugumuz Stored Procedure'leri çalistiralim.

 

Bu makalemizde LINQ ile SQL Server veritabanimizda bulunan Stored Procedure çalistirmayi inceleyelim.
 
Öncelikle Project -> Add New Item ‘dan Linq to SQL Classes ekleyelim. Ismi de SPDataClasses.dbml olsun.
 
Eger daha önce kullandigimiz bir DataClasses varsa onu kullanmaya devam edebiliriz.
 
 
Server Explorer’dan veritabani baglantisini kuruyoruz. Elimde bulunan kutuphane isimli veritabanina baglaniyorum. Bu veritabaninda olusturdugum Stored Procedure ile uygulamamizi gelistirecegiz.
 
 
Üstteki resimde de görüldügü gibi, Stored Procedure’ün adi AdiniAl ve bir adet string türünde adi isminde parametresi bulunmaktadir.
 
AdiniAl Stored Procedure’un kodlarini inceleyelim:
 
 
 
ALTER PROC AdiniAl @adi VARCHAR (50)
AS
SELECT adi FROM kitapbilgisi WHERE adi LIKE '%'+@adi+'%'
 
 
Bu prosedür, kitapbilgisi isimli tablonun adi sütunundaki kayitlardan gönderdigimiz parametre degiskeninin degerinin içinde olanlarinin adi bilgisini vermektedir.
 
Simdi Formumuza gelelim ve kodumuzu yazalim. Formumuza bir adet button ve bir adet listbox ekleyelim.
 
 
private void StoredProcedureCagir()
{
        SPDataClassesDataContext dc = new SPDataClassesDataContext();
 
        var kitaplar = dc.AdiniAl("server");
 
        foreach (var kitap in kitaplar)
               listBox1.Items.Add(kitap.adi);
}
 
 
var kitaplar = dc.AdiniAl("server") : SPDataClassesDataContext'te bulunan AdiniAl isimli Stored Procedure’ü, dc.AdiniAl("") seklinde SPDataClassesDataContext’imizin bir methodu gibi kullanmaktayiz.
 
SPDataClassesDataContext.Designer.cs dosyasini inceledigimizde bu class içerisindeki kodlarla veritabani baglantisi olusturulmakta ve bu baglanti ile kutuphane veritabani içerisinde bulunan AdiniAl fonksiyonunun burada C# koduna dönüstürülmüs gibi gösterildigi görünmektedir.
 
NOT: Asagidaki kodlar sadece arka plandaki çalismanin anlasilabilmesi açisindan gösterilmistir.
 
 
[Function(Name="dbo.AdiniAl")]
 
 
AdiniAl fonksiyonunun sonucu için olusturulan sinif da asagidadir. Uygulamamizda  kitap.adi diyerek çagirdigimiz property de bu sinifta yer almaktadir.
 
 
public partial class AdiniAlResult
      {
           
            private string _adi;
           
            public AdiniAlResult()
            {
            }
           
            [Column(Storage="_adi", DbType="VarChar(255) NOT NULL", CanBeNull=false)]
            public string adi
            {
                  get
                  {
                        return this._adi;
                  }
                  set
                  {
                        if ((this._adi != value))
                        {
                             this._adi = value;
                        }
                  }
            }
      }
 
 
Projemizi çalistirdigimizda asagidaki ekran çiktisini almaktayiz.
 
 
 
 
 
Veysel Ugur KIZMAZ

 

Yorumlar (0)

Yorum Yap

Mail listesine katılmak için tıklayınız

Hakkımdaki son bilgilere anlık erişmek için mail listesine katılabilirsiniz.