DataTable.Compute()
12.07.2007 Per
Çoğu zaman veritabanından çektiğimiz sorguları kod içerisinde kullanmak için DataTable içersinde kullanırız. Örneğin aşağıdaki veri kümesi SQL server’dan gelmiş olsun:
|
MusteriId |
Adi | Soyadi | Kredi |
| 1 | Ozan | Günceler | 1500 |
| 2 | İpek | Çobanoğlu | 2500 |
| 3 | Asuman | Acar | 500 |
| 4 | Kemal | Okutan | 1250 |
| 5 | Muharrem | Karabay | 3443 |
Yukarıdaki kümeyi bir DataTable içinde barındırdığımızı düşünelim. Bu veriyi göstermek kolay (GridView veya üçüncü parti kontroller kullanarak). Peki bu kümedeki belirli bir alana göre SUM, COUNT, AVERAGE veya bunlar gibi matematiksel işlemler yapmak isteseydik nasıl olacaktı ?
Mantıksal düşünüldüğünde, DataTable.Select() metodu kullanılarak, kritere göre sonuç alınabileceği düşünülebilir ancak Select() metodu matematiksel işlemler için değil, sadece filtreleme işlemleri ile kullanılır. Eğer DataTable.Select(“SUM(‘Kredi’)”) yazarak çalıştırırsanız, .NET size run-time hatası döndürecek ve Select() metodunun bu şekilde kullanılamayacağını belirtecektir.
Matematiksel işlemler için, DataTable.Compute() metodunu kullanıyoruz.
Örnek:
Bizim tablomuzdaki müşterilerin kredi miktarlarının toplamını DataTable içinden hesaplayabilmek için aşağıdaki satırı kullanmanız yeterli :
int KrediToplami = Convert.ToInt32(insDataTableMusteri.Compute(“SUM(‘Kredi’)”));
Eğer bir kriter belirterek toplam almak istersek aşağıdaki kodu kullanabilirsiniz
(MusteriId=2 için toplam) :
int KrediToplami = Convert.ToInt32(insDataTableMusteri.Compute(“SUM(‘Kredi’)”,”MusteriId=2”));
Daha fazla bilgi almak için aşağıdaki MSDN makalesinden faydalanabilirsiniz :
http://msdn2.microsoft.com/en-us/library/system.data.datatable.compute.aspx
Herkese iyi çalışmalar…
04.07.2008 Cum at 11:06 am
açıklamaların gercekten yararlı oldu benim için. bu compute metodu sayesınde fazla kod yazmak ve arastırmadan kurtuldum. tesekkurler…