YazilimDevi.Com {..} Yazılım Devi Olacaksın :)  
Kullanıcı Adı :
Şifre :
 
   
  En Çok İzlenen KonularAnlatım
İzle  C# ile Ado.NET-Tablo Verilerini Projemize AktaralimEngin Demirog
İzle  Active Directory Kurulumu (1)Salih Demirog
İzle  Exchange Server 2003 KurulumuSalih Demirog
ASP.NET
ASP.NET AJAX
BILGISAYAR
C#
CRYSTAL REPORTS
CSS
LINQ
MS ACCESS
MS EXCEL
MS POWERPOINT
MS WORD
POCKET PC
SQL
SQL SERVER
VISUAL BASIC
WPF
ISA SERVER 2006
MS EXCHANGE SERVER
MS OUTLOOK
MS SERVER 2003-2008
 
 

 

Bu makalemizde SQL’deki DISTINCT komutunun LINQ’teki kullanimini inceleyecegiz.
 
Öncelikle DISTINCT isleminin kati SQL kodunu inceleyelim:
 
Elimizde OnlineSatis isminde bir veritabani olsun. Bu veritabani içinde urunler isminde bir tablomuz olsun.
 
 
 
Bu tablodan, elimizde bulunan ürünlerin isimlerini görmek istiyoruz.
Bu islemi gerçeklestirecek SQL kodu asagidaki gibidir:
 
SELECT DISTINCT adi FROM urunler
 
adi sütununda ayni degerden birden çok var. Örnegin 2 adet anakart, 2 adet mouse… bulunmaktadir. Yalniz biz ürün adlarini birer tane olacak sekilde görmek istiyoruz. DISTINCT komutu, bize tekrarlayan kayitlari bir tane gibi gösterir.
 
Simdi bu islemi LINQ to SQL ile gerçeklestirelim:
 
Veritabanimizda bulunan urunler tablomuzu bir LINQ to SQL Classes içerisine aktariyoruz. Bu islemi buradan inceleyebilirsiniz.
 
Bu islemi gerçeklestirdikten sonra kodumuzu yazabiliriz:
 
private void UrunleriGoster()
{
     DataClasses1DataContext dc = new DataClasses1DataContext();
     var urunlerim = (from urun in dc.urunlers
                         select urun.adi).Distinct();
     foreach (var urunum in urunlerim)
          listBox1.Items.Add(urunum);
}
 
(from urun in dc.urunlers select urun.adi).Distinct()
 
Distinct() komutunun disarida yazilmasinin nedeni, urunler tablosundaki adi sütununda bulunan elemanlari getirdikten sonra bu elemanlar içinde tekrarlananlar varsa bir tane olarak yazilamasi gerektigidir. Yani önce içteki sorgu çalisir, sonra sorgu sonucunda gelen veriler teke indirilir gibi de düsünülebilir.
 
Kod çalistiktan sonra ekran çiktisi asagidaki gibi olacaktir:
 
 
 
 
Veysel Ugur KIZMAZ