Прокручивать строки DataTable в C # и обновлять переменные - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь перебрать DataTable в c # и получить значения из ячеек. Полученные данные могут выглядеть примерно так в зависимости от количества выбранных месяцев.

Total   Year    Month   TypeId
466     2018    1       1
77      2018    1       2
471     2018    2       1
58      2018    2       2
459     2018    3       1
151     2018    3       2

Месяц 1 равен январю. Как бы я разделил эти данные на основе введенных дат, чтобы, если кто-то ищет данные за март, я хотел бы сложить итоги за март (459 + 151)

Вот мой код на данный момент.

                    if (ds.Tables.Count > 0)
                    {

                        foreach (DataTable table in ds.Tables)
                        {
                            foreach (DataRow row in table.Rows)
                            {                                    
                                result.Total = Convert.ToInt32(ds.Tables[0].Rows[0]["Total"]);

                            }
                        }
}

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Используйте ниже, чтобы получить сумму за март.

int sum = Convert.ToInt32(dt1.Compute("SUM(Total)", "Month = 3"));
0 голосов
/ 02 июля 2018

Вы перебираете строки всех таблиц, но затем всегда используете первую строку первой таблицы. Это, очевидно, даст вам неправильный результат. Вы должны использовать значение текущей строки. Если вы хотите включить только значения марша, вам нужно пропустить все остальные строки:

if (ds.Tables.Count > 0)
{
    foreach (DataTable table in ds.Tables)
    {
        foreach (DataRow row in table.Rows)
        {                                    
            if (Convert.ToInt32(row["Month"]) != 3)
            {
                continue;
            }
            result.Total = Convert.ToInt32(row["Total"]);
        }
    }
}

Обратите внимание, что это предполагает, что все таблицы в вашем наборе данных имеют как минимум столбцы "Месяц" и "Всего". Большинство реальных наборов данных не выглядят так. Поскольку вы не показываете нам набор данных, я предполагаю, что это на самом деле основная структура.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...