2013-04-09 39 views
0

在我的Web应用程序中,我希望在数据网格中显示一个表数据,以便在执行时使用Entity Framework 4.0,我收到内存不足的异常。在ASP DataGrid中添加3lakh行时出现内存异常

ASP.NET Data Grid是否有任何限制。 我正在使用Oracle DataBase。

下面是我的代码

 Entities obj = new Entities(); 
     GridView1.DataSource = obj.EQUIPMENTs.ToList(); 
     //Here i am getting exception 
     GridView1.DataBind(); 
+0

你真的需要'.ToList()'吗? – 2013-04-09 07:32:08

+0

但是我仍然在使用OutOfMemoryException – Jagadesh 2013-04-09 07:39:15

回答

2

你必须检查你的内存消耗。请使用ProcessExplorer以便检查。如果您处于限制范围内,请检查您加载到该集合中的数据量。

请记住CLR除了分配的RAM限制有LIst<T>大小的限制,我看到obj.EQUIPMENTs.ToList()。对于List<T>,限制为2GB(甚至在x64上)。

如果其中之一为真(或两者),则解决方案将重新构建您的代码。

例子:

这几乎是不可能的用户需要一次数据的所有的金额,可能是你可以在不同的网页/标签/不管之间切它...

如果你需要一些统计信息,某些聚合或某些计算,请在服务器上进行并仅传输结果。

+0

如果你使用的是64位版本,那么你可以使用来增加列表大小。 – weismat 2013-04-09 07:38:22

+0

但对于Windows DataGridView,显示所有记录几乎不需要2分钟 – Jagadesh 2013-04-09 07:41:18

+0

@weismat:是的,但是*更好*不这样做。在90%的情况下,还有其他解决方案。 – Tigran 2013-04-09 07:41:34

相关问题