C # Datatable вычислить на индекс вместо имени? - PullRequest
2 голосов
/ 10 марта 2011

Я использую Datatable в ASP.NET / C # и хотел бы использовать метод Compute для суммирования каждого столбца, есть ли способ сделать это на основе индекса столбца, а не имени столбца, чтобы я мог просто поместить его в для цикла по линиям:

for (int i = 0; i < dt.Columns.Count; i++)
        {
            GridView1.FooterRow.Cells[i].Text = dt.Compute("SUM(i)", "").ToString();
        }

Это не слишком критично для моего приложения, так как я буду использовать массив имен столбцов в другом месте, чтобы я мог использовать этот массив для построения SUM с именем.

1 Ответ

2 голосов
/ 10 марта 2011

Это не похоже на выражения, используемые DataTable.Compute поддерживает ссылки на столбцы по индексу.Фактически в документации MSDN для свойства DataColumn.Expression подчеркивается использование имен столбцов:

При создании выражения используйте свойство ColumnName для ссылки на столбцы.

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

for (int i = 0; i < dt.Columns.Count; i++)
{
    string expression = "SUM(" + dt.Columns[i].ColumnName + ")";
    GridView1.FooterRow.Cells[i].Text = dt.Compute(expression, "").ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...