我之前在.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层故事之前提供帮助。
答案 0 :(得分:0)
我仍然不知道为什么前面的代码采取了它的方式,但我找到了解决问题的方法。声明DataView时,请使用完整的构造函数:
viewarchive = New DataView(Cache("dstallarchives").tables("archive"), "", "", DataViewRowState.CurrentRows)
如果有人可以向我解释,我仍然希望听到它!