Ara:

Şu an misafir modundasın. YazılımDevi olmak ister misin? Giriş Yap / Kayıt Ol

Makale Hakkında!

LINQ to SQL - Stored Procedure Makale Yazarı Okunma Sayısı Eklenme Tarihi
Veysel Uğur Kizmaz 1852 09.05.2009

Makale Detayı

 

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

 


Makale Tagları

Makale Dosyası

Makaleye Ait Dosya Bulunamamıştır

Paylaş


Yazar Hakkında
Genel Bilgiler   Yazar Hakkında
Ad: Veysel Uğur Kizmaz 1986 doğumlu Veysel Uğur Kızmaz, Gazi Üniversitesi Bilgisayar Mühendisliği bölümü mezunu, Ankara Üniversitesi Bilgisayar Mühendisliği bölümünde yüksek lisans öğrencisidir. Bir çok projede çalışmış olan yazarımız, şu an özel bir yazılım firmasında web tabanlı sistemler üzerinde çalışmalar yapmaktadır. Yazarımızın uzmanlaştığı alanlar .Net, Java, Php, Javascript, SQL Server, Oracle, MySQL, Sharepoint, Team Foundation Server, Biztalk, WCF, Test ve Modellemedir. Sertifikaları : MCTS
Kurum: Özel bir yazılım firması
Meslek: Yazılım Mühendisi
E-Mail: veysel@ugurkizmaz.com
Web Sitesi: http://www.ugurkizmaz.com
Makale-Video: 214

Bu makale için yapılmış yorumlar

Bu makale hakkında yorum yapınız!...

Bu makale hakkında yorum yapabilmek için lütfen üye olunuz veya giriş yapınız.

Konular

Yazarlar

Son Eklenen Makaleler

Son Eklenen Videolar

Ziyaretçi İstatistiği

ImageOnline : 10         Bugün : 1372

Bu Ay : 8203        Bu Yıl : 58377

Toplam : 441216

Kullanıcı Giriş Paneli!
E-Mail:
Şifreniz:
Giriş Yap

Şifremi Unuttum!
E-Mail:
    Gönder