2010-05-24 3 views
2

У меня есть DataTable, который имеет столбец («Прибыль»). Я хочу получить сумму всех значений в этой таблице. Я попытался сделать это следующим образом ...Использование функций Aggregate в фильтрах DataView

DataTable dsTemp = new DataTable(); 

dsTemp.Columns.Add("Profit"); 

DataRow dr = null; 

dr = dsTemp.NewRow(); 
dr["Profit"] = 100; 
dsTemp.Rows.Add(dr); 

dr = dsTemp.NewRow(); 
dr["Profit"] = 200; 
dsTemp.Rows.Add(dr); 

DataView dvTotal = dsTemp.DefaultView; 
dvTotal.RowFilter = " SUM (Profit) "; 

DataTable dt = dvTotal.ToTable(); 

Но я получаю сообщение об ошибке при применении фильтра ... , как я могу получить сумму столбца прибыл в переменной

благодарственного вы ...

ответ

3

Установите DataColumn в числовой тип (целое, десятичной, что угодно):

DataColumn col = new DataColumn("Profit", typeof(int)); 
dsTemp.Columns.Add(col); 

Использование Compute:

int total = dsTemp.Compute("Sum(Profit)", ""); 

Обратите внимание, что агрегация не является типом фильтра, что является основной проблемой при подходе к типу.

+0

спасибо, приятель! Действительно оцените вашу помощь! заботиться – Shrewdroid