Как получить доступ к отфильтрованным записям после использования RowFilter в наборе данных?

У меня есть набор данных, на котором я установил фильтр строк:

DateTime minDateVal = (DateTime)ds.Tables[0].Compute("Min(DateTimeField)", "anotherField = 12");

ds.Tables[0].DefaultView.RowFilter = "anotherField=12 and DateTimeField='" + minDateVal + "'";

Итак, после применения этого фильтра я получаю строки, удовлетворяющие условию, но как я могу получить доступ к отфильтрованным строкам (те, которые удовлетворяют условию фильтра строк)?

Некоторые сомнения:

  • Чтобы получить количество строк, удовлетворяющих фильтру строк, правильно ли это сделать ниже?

    ds.DefaultView.Count

    ds.DefaultView.recordCount

  • Чтобы получить доступ к отфильтрованным строкам после применения фильтра строк, правильно ли это сделать ниже?

для строки 0:

ds.DefaultView.RowViewCache[0]["MyColumn1"].ToString()

для строки 1:

ds.DefaultView.RowViewCache[1]["MyColumn1"].ToString()

и так далее.


person Ralph    schedule 30.05.2017    source источник


Ответы (1)


Вы можете использовать ToTable() представления данных, чтобы вернуть отфильтрованное представление данных обратно в Datatable.

DataView dv = ds.Tables[0].DefaultView;

dv.RowFilter = "anotherField=12 and DateTimeField='" + minDateVal + "'";

Datatable result  = dv.ToTable();
person Azar Shaikh    schedule 30.05.2017
comment
ToTable доступен только с .NET Framework 2.0, и я модифицирую устаревший проект, использующий .NET 1.1... так как я могу это сделать? используя методы, которые я прокомментировал в своем посте? - person Ralph; 30.05.2017