使用过滤器抛出异常

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]

以上是关于使用过滤器抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

不要将抛出异常作为业务逻辑使用

Spring中如何管理过滤器中抛出的异常?

springboot如何处理过滤器filter中抛出的异常

统一500异常( 非抛出的异常)

从Spring-Security过滤器中抛出用户定义的异常

csharp 一个过滤器(应该用作全局过滤器)来检查应用程序是否配置为脱机,并在此情况下抛出异常