【问题标题】:Exception thrown using filter使用过滤器抛出异常
【发布时间】:2017-06-29 20:35:21
【问题描述】:

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

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

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


【解决方案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]
猜你喜欢
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
相关资源
最近更新 更多