使用过滤器抛出异常

时间:2017-02-11 14:55:18

标签: vb.net linq datatable stack-overflow dataview

我有DataTable及其过滤器DataView和RowFilter使用字符串。它的工作正常。但是当sting创建一个巨大的行时,在DataView行过滤器中得到了stackoverflow异常。

dv.RowFilter = strFilter

String strFilter如下所示。仅按两列分区和位置过滤

strFilter=([Division] LIKE ('Division 2') or [Division] LIKE ('%|Division 2') or [Division] LIKE ('%|Division 1') AND [Location] LIKE ('%Location1') or [Location] LIKE ('Locaion2|%').....

我使用LINQ而不是RowFilter,但它没有返回到正确的表

 Dim query = dv.Table.AsEnumerable().Where(Function(m) strFilterOption.Contains(m.Field(Of String)("Division")) AndAlso strFilterOption.Contains(m.Field(Of String)("Location")))

 dv = query.AsDataView()
 Dim dtFillData As DataTable=dv.ToTable

如何使用LINQ或任何其他解决方案执行此操作?

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为你应该做以下事情:

Dim query = dv.Table.AsEnumerable().Where(Function(m) m.Field.ToString()(Of String)("Division").Contains("Division 2") ElseOr m.Field(Of String)("Division").EndsWith("|Division 2") ElseOr m.Field(Of String)("Division").EndsWith("|Division 1")  AndAlso ..... ))