SelecttoのパラメーターがfilterExpressionであり、すべての列を渡したため、エラーが発生します。WHEREsqlの句としてfilterExpressionを理解します。すべての列が必要ですが、1つだけでフィルタリングする必要があります。DataTableすべての列は/の一部であるため、とにかくすべての列を取得します。DataViewしたがって、明示的にリストする必要はありません。
DataTable.Select、DatView.RowFilterメソッド、またはLINQ-to-DataSet:のいずれかを使用できます。
LINQ-To-DataSet(私が好む):
var filtered = tb.AsEnumerable()
    .Where(r => r.Field<String>("CREATOR").Contains(searchstring));
ADO.NET(DataTable.Select):
DataRow[] filteredRows = tb.Select("CREATOR LIKE '%" + searchstring + "%'");
ADO.NET(DataView.RowFilter):
 tb.DefaultView.RowFilter = "CREATOR LIKE '%" + searchstring + "%'";
string代わりに任意の列でこれを検索する場合:
DataRow[] filteredRows = tb.Select("FIRSTNAME LIKE '%" + searchstring + "%' OR LASTNAME LIKE '%" + searchstring + "%' OR NAME LIKE '%" + searchstring + "%' OR COMPANY LIKE '%" + searchstring + "%' OR CREATOR LIKE '%" + searchstring + "%'");
Linqと同じ:
var filtered = tb.AsEnumerable()
    .Where(r => r.Field<String>("FIRSTNAME").Contains(searchstring)
           ||   r.Field<String>("LASTNAME").Contains(searchstring))
           ||   r.Field<String>("NAME").Contains(searchstring)
           ||   r.Field<String>("COMPANY").Contains(searchstring)
           ||   r.Field<String>("CREATOR").Contains(searchstring));