我可以加載到表單控件的最大數據量是多少?可以加載到Windows窗體控件的最大數據量是多少?
根據我的經驗,當超過500,000條記錄添加到任何Windows窗體控件時,我的應用程序會消耗太多內存並掛起。任何線索?
我可以加載到表單控件的最大數據量是多少?可以加載到Windows窗體控件的最大數據量是多少?
根據我的經驗,當超過500,000條記錄添加到任何Windows窗體控件時,我的應用程序會消耗太多內存並掛起。任何線索?
是的,這會導致問題。
不要添加那麼多的記錄。
沒人需要那麼多。您需要做的是添加過濾功能,以便用戶可以指定他/她想要使用的數據範圍。
例如,讓用戶按日期縮小搜索範圍(如果是時間敏感的數據),或者訂單號範圍,或者......好吧,無論如何。
但我可以保證你找到一種方法來添加500K行到網格或任何不是解決方案。
看起來您已經找到了應用的最大內存空間。
沒有單一的措施。
應用程序內存還包括您的應用程序正在使用的GDI句柄,文件句柄,線程。 確保你沒有使用任務管理器和喜歡的GDI句柄泄漏。
另外,向用戶界面加載500,000條記錄並不是一個好習慣,用戶永遠無法處理這麼多信息,請通過使用分頁或其他方式來更改您的練習。
我通常做的事情是限制屏幕上顯示的記錄數量,通常爲20,但這取決於您嘗試顯示的數據類型。
我通常在此之後應用過濾,並將數據和修訂記錄計數返回給應用程序。如果用戶希望能夠看到所有的記錄,他們可以導出到另一個應用程序(通常是Excel,這將打破,但也是XML)。
雖然沒有人會讀通過50萬條記錄。
這是一大堆數據;首先要做的是減少數據量 - 但是,由於您在標籤中提到了DataGridView
,因此大數據場景中存在「虛擬模式」。請參閱MSDN上的here (overview)和here (howto)。
一些(但不是全部)其他基於列表的控件也具有「虛擬模式」支持。
+1指出「如果你必須問,你可能做錯了什麼。」 (http://blogs.msdn.com/oldnewthing/archive/2007/07/18/3926581.aspx)。 – 2009-04-28 17:53:44