2013-04-09 67 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

相關問題