如何解决这个错误'System.OutOfMemoryException'?

时间:2016-12-08 13:03:34

标签: asp.net devexpress aspxgridview

我正在使用devexpress网格视图。我在sql数据库中有2,800,000条记录。我给出了如下查询:

SELECT 
   YEAR(Time) Year
  ,MONTH(Time) Month
  ,[StoreID]
  ,[TransactionNumber]
  ,[BatchNumber]
  ,[CustomerID]
  ,[CashierID]
  ,[Total]
FROM [HQMatajer].[dbo].[Transaction]
where YEAR(Time)=2015

执行此查询并花了15秒在sql server中给出结果。但是当我尝试使用sqldatasource或动态地运行asp.net网格视图时,它给了我system.OutOfMemoryExceptionthis exception occur when run with sqldatasource

第二次错误

This error for dynamically executed

  

这不会显示单页中的所有记录。此结果将显示在1000页的页面中

1 个答案:

答案 0 :(得分:1)

嗯,OutOfMemoryException很难以简单的方式解决。也就是说,例外的原因。

如果仔细观察您的方法,您会发现您正在尝试获取280万行并将其放在网站上。这意味着您正在尝试构建一个包含280万行的页面,而不是讨论页面其余部分的开销。如果你在一个5行长的代码片段中使用280万行,那么你最终会得到5x280万行。这显示得太多了。

最好的方法是重新设计您的网页。你需要1页280万行吗?我的回答是好吧!它在机器上的过程太多了,对于一个人来说处理太多了,它太多了。

使用较小的套装!