Столбец с суммой данных с вычислением, но без фильтра - PullRequest
3 голосов
/ 19 сентября 2011

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

Я пытался передать в string.empty и "", но без радости:

object objColTotal;
objColTotal = _dataSetDataTable.Compute("Sum(Price)", "");
decimal tot = Convert.ToDecimal(objColTotal);

Ответы [ 2 ]

5 голосов
/ 19 сентября 2011

Должна работать пустая строка.

Вы всегда можете использовать фильтр, который, как вы уверены, будет включать все ваши записи.


Быстрый тест на десятичном столбце:

var dt = new DataTable();
dt.Columns.Add("DecCol1", typeof(decimal));
dt.Columns.Add("StrCol1");
dt.Rows.Add(new object[] { 1.1, "r1"});
dt.Rows.Add(new object[] { 2.2, "r2" });
dt.Rows.Add(new object[] { 3.3, "r3" });

object sum = dt.Compute("SUM(DecCol1)", "");
Console.WriteLine(sum);

Я получаю правильный ответ: 6,6

0 голосов
/ 02 марта 2014

примечание 2 вещи

  • если имя вашего столбца содержит пробел , вы должны использовать скобки, а одинарные или двойные кавычки не принимаются.
  • также обратите внимание, что Computeвозвращает объект, который передал его с чем-то (int) выдает ошибку , и вы должны использовать другие методы, такие как примеры ниже

samples:

int Dones = int.Parse(dt.Compute("sum(Done)", "").ToString());
int InProgresss = int.Parse(dt.Compute("sum([In Progress])", "").ToString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...