5.00 / 1 oy

C# DataTable ve DataView filtreleri

C#'ta DataTable içerisindeki satırları ve sütunları filtreleyebilmek için DataView kullanılıyor bildiğim kadarıyla. Sql benzeri bir sorgu yapısı ile verileri filtrelemek ya da sıralamak gibi işlemler aşağıdaki gibi yapılabiliyor. Bu soruyu açıyorum çünkü ben de her lazım olduğunda unuttuğum için yabancı forumlarda tekrar tekrar arayıp bulmak durumunda kalıyorum ve zaman kaybı olmuş oluyor, hem kendime lazım oldukça açar buradan bakarım hem de başkalarına da fayda sağlamış olur. Ayrıca alternatif DataTable ve DataView kullanım örneklerini de belki burada toplamış oluruz.

Öncelikle DataView nasıl üretilir oradan başlayalım. dt adında  bir DataTable nesnemiz olsun ve bu nesnemizden bir DataView nesnesi üretelim.

DataTable dt = db.verileriGetir();
DataView dv = new DataView(dt);

Bu dt nesnesini ve verilerini alacağı db sınıfını farazi olarak yazıyorum, diyelim ki içerisinde 1'den 100'e kadar olan id değerleri ve karışık halde isim verileri olsun içerisinde.

Şimdi de dv DataView nesnemizin içerisindeki verileri filtreleyelim.

dv.RowFilter = "id = 50";  // id'si 50 olan kullanıcı
dv.RowFilter = "ad = 'Ali'"; // adı Ali olan kullanıcılar
dv.RowFilter = "ad <> 'Ali'" // adı Ali olmayan kullanıcılar
dv.RowFilter = "ad LIKE '%hme%'" // adın içinde hmr karakterleri geçen kullanıcılar
dv.RowFilter = "id IN (51, 52, 53)" //id'si parantez içerisindeki sayılardan birisi olan kullanıcılar
dv.RowFilter = "ad = 'Mehmet' AND (id < 10 OR id > 50)"; // AND ve OR operatörleri kullanımı
// AVG, SUM ve COUNT gibi sql fonksiyonları da kullanılabilir
// Convert, Len, isnull, iif, trim ve substring gibi fonksiyonları da destekler

DataView de tıpkı DataTabşe gibi DataSource olarak kullanılabilir ve sonrasında repeater, GridView ya da ListView (artık ne tercih ediliyorsa) DataBind edilebilir.

mbologlu

19.09.2019 01:37

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# DataTable ve DataView filtreleri

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.