【问题标题】:Dataview RowFilter is changing the Cached Dataset in .NET 4.0Dataview RowFilter 正在更改 .NET 4.0 中的缓存数据集
【发布时间】:2012-05-09 16:07:16
【问题描述】:

我之前在 .NET 2.0 中使用过此代码,并且长期以来一直表现良好。我不知道4.0是否与此有关,但我无法解释输出。我已经把它提炼成这段代码:

Sub page_prerender(s As Object, e As EventArgs)
    cache_list()
    Dim dstar As DataSet = Cache("dstallarchives")
    Dim viewar As DataView = dstar.Tables("archive").DefaultView

    Response.Write(viewar.Count & "<br/>") 'output 891
    viewar.RowFilter = "customerid=25"
    Response.Write(viewar.Count & "<br/>") 'output 52

    'clear the dataview, create it fresh from the cache
    viewar = New DataView
    viewar = Cache("dstallarchives").tables("archive").defaultview
    Response.Write(viewar.Count) 'output 52???
End Sub

Cache_list 在包含 891 条记录的数据集中插入一个表。 52 有 customerid=25。您可以在上面看到我得到的输出,当它应该是 891 - 52 - 891 我通常不会创建中间 dstar 数据集,而是直接从缓存对象创建数据视图。但现在输出对我来说更没有意义了。请在我的笔记本电脑跌落 3 层之前提供帮助。

【问题讨论】:

    标签: .net caching dataset dataview


    【解决方案1】:

    我仍然不知道为什么以前的代码会这样,但我找到了解决问题的方法。声明 DataView 时,使用完整的构造函数:

    viewarchive = New DataView(Cache("dstallarchives").tables("archive"), "", "", DataViewRowState.CurrentRows)
    

    如果有人可以向我解释一下,我还是很想听听!

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2011-07-19
      • 2010-11-18
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      相关资源
      最近更新 更多