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…

One Response to “DataTable.Compute()”

  1. n3cat1 Says:

    açıklamaların gercekten yararlı oldu benim için. bu compute metodu sayesınde fazla kod yazmak ve arastırmadan kurtuldum. tesekkurler…


Leave a Reply