我需要在网格标题处显示总行数。 网格还必须处理大量记录。 所以我决定使用网格自定义分页功能。 我知道如何使用sql2005 ROW_NUMBER等进行服务器端分页。 但我的困难在于在业务逻辑层完成复杂的行基过滤。 我认为首先进行大量记录的复杂过滤(以便知道项目计数)将不会有效,并且可能会导致内存不足异常。
现在这个项目(asp.net web app)正在使用.net framework1.1,sql2005进行生产。 生产的下一个版本将使用.net framework4.0。 之后我们将升级到sql2008。
请帮助我找到解决该问题的方法? 感谢。
答案 0 :(得分:0)
我想说如果你害怕生产中的内存不足,要么你的数据量不足,或者你的代码非常错误,那么硬件的尺寸不足:)
我会做的一切都是存储过程,包括过滤,分页和排序。一旦你在服务器中整理了这个并且你已经指定了你需要检索的页面大小和pag索引,那么存储的proc只返回你正在寻找的单页记录,你也可以将它绑定到你的UI控件。
这是你想要的还是我弄错了?
答案 1 :(得分:0)
如果您使用.net 4.0,IQueryable是一个可行的选择。有关详细信息,请参阅here。基本上,IQueryable延迟了查询的执行,因此您可以应用业务逻辑,然后从底层数据存储(在您的情况下为sql server)中获取相关的数据。 但是,在沿着这条路线行进之前,我会对查询性能进行一些微观基准测试。