2009-04-28 69 views

回答

6

是的,這會導致問題。

不要添加那麼多的記錄。

沒人需要那麼多。您需要做的是添加過濾功能,以便用戶可以指定他/她想要使用的數據範圍。

例如,讓用戶按日期縮小搜索範圍(如果是時間敏感的數據),或者訂單號範圍,或者......好吧,無論如何。

但我可以保證你找到一種方法來添加500K行到網格或任何不是解決方案

+0

+1指出「如果你必須問,你可能做錯了什麼。」 (http://blogs.msdn.com/oldnewthing/archive/2007/07/18/3926581.aspx)。 – 2009-04-28 17:53:44

3

看起來您已經找到了應用的最大內存空間。

沒有單一的措施。

應用程序內存還包括您的應用程序正在使用的GDI句柄,文件句柄,線程。 確保你沒有使用任務管理器和喜歡的GDI句柄泄漏。

另外,向用戶界面加載500,000條記錄並不是一個好習慣,用戶永遠無法處理這麼多信息,請通過使用分頁或其他方式來更改您的練習。

0

我通常做的事情是限制屏幕上顯示的記錄數量,通常爲20,但這取決於您嘗試顯示的數據類型。

我通常在此之後應用過濾,並將數據和修訂記錄計數返回給應用程序。如果用戶希望能夠看到所有的記錄,他們可以導出到另一個應用程序(通常是Excel,這將打破,但也是XML)。

雖然沒有人會讀通過50萬條記錄。

1

這是一大堆數據;首先要做的是減少數據量 - 但是,由於您在標籤中提到了DataGridView,因此大數據場景中存在「虛擬模式」。請參閱MSDN上的here (overview)here (howto)

一些(但不是全部)其他基於列表的控件也具有「虛擬模式」支持。

相關問題