2013-08-07 2 views
-1

Я использую System.Linq.Dynamic для группировки столбцов с использованием linq динамически и необходимо выполнитьКак выполнить сумму столбца динамически в C#?

Как я могу подсчитать столбцы, т. Е. (Сумма (Депозиты)). Пользователь будет выбирать таблицу и столбцы во время выполнения. enter image description here Ex: Вышеприведенная таблица имеет край, государство, BankName, год, QuarterFromMainT

Предположим, пользователь выбрал эти столбцы для группирования (территория, государство, BankName) и теперь хочет, чтобы суммировать экс Column: Депозиты. Как я могу это сделать? Потому что только ASEnumerable и AsQueryable имеют только сумму. Нам нужно выполнить GroupBy и просуммировать

Нажмите here для дальнейшего уточнения и мой код:

enter image description here

здесь t1 столовое и qfields список, который содержит группировку столбцов.

Как использовать linq для суммирования столбца после groupby?

+0

Возможный дубликат? http://stackoverflow.com/questions/61870/sum-of-items-in-a-collection – user1477388

+0

Конечно, это не мое дело, но я считаю, что правильно предупредить вас и спросить: вы отправляли конфиденциальные данные? Если да, ваш работодатель/клиент не будет счастлив. –

ответ

0

Вы имеете в виду это? Если нет, то не обращайте внимания ...

var query = rows 
    .GroupBy(row => new { row.Territory, row.State, row.BankName }) 
    .Select(group => new 
    { 
     group.Key.Territory, group.Key.State, group.Key.BankName, 
     Deposits = group.Sum(row => row.Deposits) 
    }); 
+0

Как я могу сделать сумму? –

+0

Запрос имеет динамические столбцы, не статические, то есть пользователь будет выбирать таблицу и столбцы для группировки и столбца для суммирования во время выполнения. Как я могу это выполнить? –

0

Вам нужно настроить текст колонтитула для отображения вашей суммы SUM

Пример:

<asp:BoundField DataField="Deposits" 
      FooterText="Total Desposits" /> 

и Gridview вам нужно написать кодирования, как этот

Gridview.Columns[4].FooterText = dt.AsEnumerable().Select(x => x.Field<int>("Desposits")).Sum().ToString(); 

     Gridview.DataSource = dt; 

     Gridview.DataBind(); 

его работа в моем приложении. вы можете использовать его в соответствии с вашим удобством.

Смежные вопросы