2016-03-28 51 views
1

我有一个从SQL Server调用一个过程,在我的ASP页面返回一个数据表作为如何将数据集保存在页面的临时存储器中?

public static DataTable GetProducts(int parmCategory = -1){} 

ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", ReportsBLL.GetProducts())); 
ReportViewer1.LocalReport.Refresh(); 

pageload() 这个procudure填写一次函数需要约8分钟从数据库中获取数据 ,我想在按钮按钮上进行大量过滤,以过滤来自GetProducts 的数据,并且没有任何逻辑可以在每个过滤器中调用采购并与DB

所以,我怎么能保存数据,一旦我得到它在pageload和按钮压滤处理它

+0

考虑分页您的结果集。服务器_和_客户端会更好。恕我直言,根据您的评论下面,我不确定任何用户将实际需要/能够使用,_“100000行”_。 – EdSF

回答

0

这取决于有多少数据被返回。 如果它不太多,将数据放入会话变量中,如下所示: 将数据设置为页面上的一个变量,称为dataSet1。

Session["DataSet1"] = dataSet1; 

如果数据量很大,你真的想考虑让页面在过滤之间“刷新”。这样你不会吹出你的记忆。

+0

没有我的数据是非常大的,我说大约需要8分钟从DB加载数据 –

+0

在这种情况下,我会建议“刷新”每个过滤器之间的页面。然后通过使用分页查询来限制加载时间,从而减少数据量。这将结果设置为一次只返回1000条记录。这会加速一切。如果你需要返回的东西的总数,那么首先得到一个“计数”。 – nythgar

+0

对不起,但我不明白你是什么意思,我的数据超过100000行和它需要加载它们 –