Заполните строки с датой за датой в DataTable - PullRequest
0 голосов
/ 26 декабря 2018

Я получил DataTable и строку, подобную этой:

--------------------------------------------
|   date   |   a   |   b   |   c   |   d   |
--------------------------------------------
|     x    |  200  |  30   |   5   |   7   |
--------------------------------------------

И этот код, который складывает каждое число из прошлого в настоящее:

var topla = Dao.Sum<x>(a => (a.Orj_Fiyat_VergiDahil * a.Ana_Miktar * a.Kur) - a.Iskonto_Tutar, a => (urunidler.Contains(a.Urun_Id)));

A, b, c иd - категории для каждого элемента.И строка показывает нам их продажи от первой продажи до последней продажи.Таким образом, я продал 200 $ "a" предмет от моего начала до сегодняшнего дняНо я хочу заполнить эту таблицу следующим образом:

--------------------------------------------
|   date   |   a   |   b   |   c   |   d   |
--------------------------------------------
| 24.12.18 |  100  |  10   |   2   |   1   |
--------------------------------------------
| 25.12.18 |  50   |  5    |   1   |   1   |
--------------------------------------------
| 26.12.18 |  1    |  3    |   2   |   1   |
--------------------------------------------

(цифры приведены в качестве примера)

Как я могу это сделать?Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 26 декабря 2018

Попробуйте следующий код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable Dao = new DataTable();

            var groups = Dao.AsEnumerable().GroupBy(x => x.Field<DateTime>("date").Date).ToList();

            DataTable sumTable = Dao.Clone();
            int numberOfColumns = sumTable.Columns.Count;

            foreach (var group in groups)
            {
                DataRow newRow = sumTable.Rows.Add();
                newRow["date"] = group.Key;

                for (int col = 1; col < numberOfColumns; col++)
                {
                    newRow[col] = group.Sum(x => (int)x[col]);
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...