Метод DataTable Pivot с полем составного ключа - PullRequest
0 голосов
/ 29 июля 2010

Мне нужен метод C #, который может поворачивать объект DataTable / IDataReader, где исходная таблица содержит составной ключ.

Я хотел использовать это: http://weblogs.sqlteam.com/jeffs/articles/5091.aspx однако он работает только для одногоключевой столбец.

Нет SQL.Это должно быть C #.

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Вы можете использовать LINQ:

myDataTable.AsEnumerable()
    .GroupBy(r => new {col1 = r["col1"], col2 = r["col2"]});

Редактировать Проверено на комментарий:

DataTable dataTable = new DataTable();
dataTable.Columns.Add("col1"); 
dataTable.Columns.Add("col2"); 
dataTable.Columns.Add("val");
dataTable.Rows.Add("a", "b", 0);
dataTable.Rows.Add("a", "b", 2);
dataTable.Rows.Add("a", "c", 3);

Console.WriteLine(dataTable.AsEnumerable()
    .GroupBy(r => new { col1 = r["col1"], col2 = r["col2"] }).Count()); //2
0 голосов
/ 02 августа 2010

К сожалению, я недостаточно знаю о LINQ, чтобы определить, является ли это жизнеспособным решением.Я решил сделать мою сводную логику на уровне базы данных.Я буду держать глаза открытыми.

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