You can try LINQ instead of RowFilter:
A simple example with DateTime:
Initialization:
var table = new DataTable("Dates"); var dateColumn = new DataColumn("Date", typeof (DateTime)); table.Columns.Add(dateColumn); table.BeginLoadData(); table.LoadDataRow(new object[] {new DateTime(2000, 1, 1)}, true); table.LoadDataRow(new object[] {new DateTime(2000, 1, 2)}, true); table.LoadDataRow(new object[] {new DateTime(2001, 1, 1)}, true); table.LoadDataRow(new object[] {new DateTime(2002, 1, 1)}, true); table.EndLoadData();
Request with the search text for the date:
var someDateText = "2000"; var dataView = (from row in table.AsEnumerable() let dateTime = row.Field<DateTime>(0) where dateTime.ToString().Contains(someDateText) orderby dateTime select row).AsDataView();
After that, you can also use the RowFilter of the created dataView to execute other filters.
source share