0

我之前在 .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 层楼跌落之前提供帮助。

4

1 回答 1

0

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

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

如果有人可以向我解释这一点,我仍然想听听!

于 2012-05-10T01:30:00.223 回答