使用过滤器抛出异常
Posted
技术标签:
【中文标题】使用过滤器抛出异常【英文标题】:Exception thrown using filter 【发布时间】:2017-06-29 20:35:21 【问题描述】:我有 DataTable
及其过滤器 DataView
和 RowFilter 使用字符串。它工作正常。但是当 sting 创建一个大行时,然后在 DataView
行过滤器中出现 *** 异常。
dv.RowFilter = strFilter
String strFilter 如下所示。仅按 Division 和 Location 两列过滤
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
或任何其他解决方案来做到这一点?
提前致谢
【问题讨论】:
好吧,开始使用OrElse
而不是AndAlso
。
【参考方案1】:
我认为您应该执行以下操作:
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 ..... ))
【讨论】:
但它是一个动态字符串。并且是多个[Division]和[Location]以上是关于使用过滤器抛出异常的主要内容,如果未能解决你的问题,请参考以下文章