Mam problem z wyświetleniem tego zapytania LINQ w widoku dataGridview:
var result = from myrow in MydataTable.AsEnumerable()
where liste.Any(x => myrow.Field<string>("ID").ToUpper().Contains(x.ToUpper()))
select myrow;
MyGrigdView.DataSource = result.Tolist();
Wydajność:
Odpowiedzi:
0 dla odpowiedzi № 1Problem polega na tym, że gridview potrzebuje jakiegoś sposobuuzyskania dostępu do informacji o tym, jakie kolumny są potrzebne, aby skutecznie powiązać dane. Jeśli ma obiekt z właściwościami dla każdej kolumny, może działać, ale go nie masz. DataTable
implementuje taki interfejs, IEnumerable<DataRow>
nie. Najprostszą opcją jest umieszczenie wszystkich tych wierszy z powrotem w DataTable
aby wiązanie mogło działać. Wystarczy wymienić ToList
z CopyToDataTable
(może być konieczne dodanie odpowiedniego using
).