C# Podsumowanie danych w DataTable (Funkcja agregująca w DataTable)

5-Wrz-2011

Pracując w C# z danymi pobierasz je do DataSet, a dokładniej do DataTable. Pobieranie polega na wykonaniu odpowiedniego zapytania w bazie danych. Niekiedy okazuje się, że dane należy zaprezentować lub przetworzyć nie tylko z dokładnością do rekordów, ale także w postaci zagregowanej, np. u dołu tabeli umieścić wiersz podsumowania.

Czy takie działanie wiązę się z koniecznością wykonania kolejnego zapytania na bazie danych? Otóż nie. DataTable ma specjalną metodę Compute, która potrafi wykonać funkcję agregującą na danych znajdujących się już w DataTable. Aby wyzanczyć sumę możesz wykonać:

object sum = table.Compute("Sum(Quantity)");
decimal sumQuantity = Convert.ToDecimal(sum);

Metoda Compute pozwala także przekazać do bazy danych parametr określający filtr, który należy zastosować wykonując obliczenia funkcji agregującej:

object sum = table.Compute("Sum(Quantity)", "ProductID = 5");
decimal sumQuantity = Convert.ToDecimal(sum);

Jak dla mnie duże ułatwienie, więc z tego korzystam. A Ty?

Dodaj komentarz:

Autor: Rafał Kraik