2013-05-24 2 views
2

Мне интересно группировать некоторые строки в datatable после 2 столбцов и сохранять результаты в другом datatable. У меня есть следующий код для группировки строк:Групповые строки в datatable

var result = from t in newtable.AsEnumerable() 
       group t by new { Col1= t.Field<String>("ID1"), Col2= t.Field<String>("ID2") } into grp 
       select new 
       { 
        Col1= grp.Key.ID1, 
        Col2= grp.Key.ID2 
       }; 

Как я могу легко конвертировать result в DataTable?

+0

Does 'result' разоблачить CopyToDataTable метода? http://msdn.microsoft.com/en-us/library/bb396189.aspx – dash

ответ

0

Вы должны применить foreach цикл что-то подобное

foreach (var item in results) 
       { 
        Datatable dt = new DataTable(); 
        DataRow dr = dt.NewRow(); 
        dr["Col1"] = item.Col1; 
        dr["Col2"] = item.Col2; 
        dt.Rows.Add(dr); 
       } 

Вы должны применять этот тип сценария.

Надеюсь, что он работает.

2

Просто используйте CopyToDatatable с результирующим запросом:

IEnumerable<DataRow> query = from t in newtable.AsEnumerable() 
group t by new { Col1 = t.Field<String>("ID1"), Col2 = t.Field<String>("ID2") } into grp 
select new 
{ 
Col1 = grp.Key.ID1, 
Col2 = grp.Key.ID2 
}; 
DataTable boundTable = query.CopyToDataTable<DataRow>(); 

CopyToDatatableSystem.Data.DataSetExtensions находится в пространстве имен

+0

thanks @dash;) –

+0

Используя приведенный выше код, я получаю следующую ошибку: Не удается неявно преобразовать тип 'System.Collections.Generic.IEnumerable 'to' System.Collections.Generic.IEnumerable '. Явное преобразование существует (вы пропускаете листинг?) – Rocshy

+0

Вы должны изменить var Результат в IEnumerable query –

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