我有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
或任何其他解决方案执行此操作?
提前致谢
答案 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 ..... ))