İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp
  3. C# DataTable İçerisinde Arama Yapmak

C# DataTable İçerisinde Arama Yapmak

C# DataTable İçerisinde Arama Yapmak

Merhabalar,  yaklaşık bir aydır ders ekleyemiyordum çünkü aklıma ekleyecek bir ders gelmiyordu. C# DataTable İçerisinde Arama Yapmak dersim ile C# eğitim setime devam ediyorum. Yazılım ile uğraştığım süre boyunca C# eğitim setime dersler eklemeye devam edeceğim.

C# DataTable İçerisinde Arama Yapmak

Bazı durumlarda elimizdeki bir DataTable içerisinde arama yapmamız gerekebiliyor. Benim durumumda, bir kullanıcının bir ekran için geçerli olan tüm yetkilerini alıp, datatable içerisindeki yetkiler üzerinde tek tek filtreleme yaparak aradığım yetki var mı yok mu şeklinde kontrol edip yetkileri ayarlamam gerekmişti. Yani veritabanından yetkileri tek tek çekerek değil tek seferde çekip daha hızlı olsun diye kod ile arama yapmak istemiştim.

Şimdi yukarıda bahsettiğim işlem için bir kaç yöntem buldum ve o yöntemleri sizle paylaşacağım.

NOT: Bu yöntemler, DataRow sınıfında geri dönüş vermektedir.

 

LINQ-To-DataSet Yöntemi

string aranan = "";
var filteli_satirlar = dt.AsEnumerable().Where(r => r.Field<String>("YETKI").Contains(aranan));

Bu yöntem, bildiğimiz t-sql benzeri bir yöntemdir. Yöntemin adında da anlayabileceğiniz gibi adı LINQ’tir. C# kodları ile sorgular yazabiliyoruz.

YETKI kolonu içerisinde, aradığımız veri geçiyor ise o DataRow’lar seçilmiş olacak.

 

ADO.NET

string aranan = "";
DataRow[] filtreli_satirlar = dt.Select("YETKI LIKE '%" + aranan + "%'");

Bu yöntem ile DataTable üzerinden select yapabiliyoruz. Yukarıdaki satırda gördüğünüz gibi aynı T-SQL’de yazdığımız where komutunu kullanıyoruz. Burada LIKE komutu ile “içerisinde xxxx geçenler”  filtresi vermiş oluyoruz. Yukarıda sadece LIKE kullanıldı ancak T-SQL’deki gibi her türlü sorgulama şeklini kullanabilirsiniz. Yani birden fazla kolona göre filtre verebilirsiniz.

 

Yukarıda gördüğünüz gibi bu işlemi yapmak için iki yolumuz var. Elbette bu iki yol mutlak değildir. Ararsanız daha farklı yollar da bulabilirsiniz belki ama benim bulabildiğim en kısa yöntemler bunlar.

Notta da bahsettiğim gibi yukarıdaki işlemler DataRow olarak geri dönüş veriyor. Eğer filtrelenmiş satırları yeni bir datatable olarak almak isterseniz aşağıdaki kod satırını kullanabilirsiniz.

string aranan= "";
DataTable dtResult = tb.Select("YETKI LIKE '%"+aranan+"%'").CopyToDataTable();

 

BİLGİ: Arkadaşlar eğer bu gibi bir işlemi çok sık kullanmanız gerekiyor ise, bu kodları bir class haline getirerek kullanmanız daha el verişli olacaktır. Çünkü eğer arama yöntemini değiştirmek isterseniz her yerde tek tek değiştirmeniz gerekecektir ki size boş yere eziyet verecektir.

 


C# DataTable İçerisinde Arama Yapmak yazımda bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. 😉

 

Yorum Yap

Yazar Hakkında

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.

Yorum Yap