2009-04-02 6 views
2

Как вычислить сумму двух строк в datatable, которая имеет тип string?
в моем случае я не могу изменить тип столбца.
Я пробовал:Сумма столбцов DataTable строки типа

1) объект objSum;
objSum = dt.Compute ("Sum (WeightRate)", "");

2) десятичная сумма = (десятичная) dt.Compute ("SUM ([WeightRate])", "");

но не повезло ...

Мой стол:
Weightrate No.Ofvehicles
350,50 50
205,00 40

мне нужен результат как

Weightrate No.Ofvehicle
555,50 90

ответ

7

Вычислить меня ThOD позволяет некоторому зачаточное преобразование типа:

var sum = dt.Compute("Sum(Convert(WeightRate, 'System.Int32'))"); 

Обратитесь к справке MSDN по DataColumn Expressions для получения дополнительной информации о том, что вы можете сделать с помощью вызова метода Compute.

Редактировать Перечитав ваш вопрос, вы, вероятно, захотите преобразовать его в System.Decimal, а не System.Int32, но, надеюсь, вы это получили. ;-)

+0

Да ... Спасибо .. – Guddu

+0

@Matt: Извините, что снова открыл этот вопрос. По другому вопросу (http://stackoverflow.com/questions/8928748/syntaxerrorexception-using-datatable-compute-method-to-get-sum-of-a-converted-st/) то же самое не сработало. Не могли бы вы проверить, будет ли ваш код работать со ссылкой, вставленной выше? Благодаря!! – shahkalpesh

+0

Сэр не работает для меня. я попытался в vb.net 'Dt.Compute (« Sum (Convert (deliverqty, «System.Double»)))) 'его как ошибка времени компиляции' Arugument фильтра отсутствует ', поэтому я изменил, как этот 'Dt.Compute («Сумма (конвертировать (доставлено,« System.Double »))», «»)) «Но это не работает. – Sathish