我正在構建一個Windows窗體應用程序,我想在哪裏打開窗體,如產品,它應該加載數據庫中可用的所有列出的產品。隨着照片。並在DataGridView中顯示它。 現在我的問題是在gridview中加載這麼多數據的最佳方式是什麼?Windows窗體DataGridView快速加載
-2
A
回答
0
如果要顯示DataGridView
中的數據,並且您懷疑會有大量數據(可能太多以至於將其完全加載到內存中可能會出現問題),則應該使用其功能VirtualMode
。請參閱MSDN文章,"Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control":
「當你想在DataGridView控件來顯示非常大量的表格數據,可以VirtualMode屬性設置爲true,並明確其數據存儲管理控制的互動此。可以讓您在這種情況下調整控件的性能。「
基本上,虛擬模式意味着DataGridView
控件將在需要數據時提高CellValueNeeded
event。您訂閱該事件的處理程序並「及時」獲取所需數據。這樣就可以將全部數據集的一小部分保留在內存中。
這取決於你在內存中保存了多少數據記錄。一些可能的策略:
您執行分頁,即從數據庫加載連續行的塊。這需要一個已知的順序。也就是說,您需要能夠從
DataGridView
的當前排序中派生出ORDER BY
SQL子句。 (請查看"Using OFFSET and FETCH to limit the rows returned"以瞭解如何在SQL級別實現分頁。)您從數據庫中獲取單個行。這可能比分頁效率低,但如果無法確定與您的
DataGridView
當前排序標準相匹配的ORDER BY
子句,則效果會更好。
在這兩種情況下,請查看我鏈接到上面的文章,瞭解如何使用虛擬模式的教程。
相關問題
- 1. WPF DataGrid與Windows窗體DataGridView
- 2. 在Windows窗體刷新DataGridView
- 3. Windows窗體(C#):DataGridView的System.IndexOutOfRangeException
- 4. C#DataGridView和Windows窗體
- 5. Windows窗體DataGridView滾動
- 6. Windows窗體不加載
- 7. VB 2013從窗體中加載datagridview
- 8. 基於Windows的Windows窗體加載
- 9. 快速更新DataGridView
- 10. 快速ArrayList加載
- 11. Windows窗體/ DatagridView屏幕閃爍
- 12. Windows窗體DataGridView自動調整
- 13. Windows窗體 - 驗證DataGridView的輸入
- 14. 動態綁定Windows窗體中的DataGridView
- 15. 使用C#的Windows窗體中的DataGridView
- 16. Windows窗體:DataGridView綁定問題
- 17. Windows窗體:DataGridView中的額外列
- 18. Windows窗體中的DataGridView中的UserControl
- 19. 不排序的Windows窗體DataGridView
- 20. 如何在Windows窗體中實現快速更新表?
- 21. Windows窗體Aplication文件加載異常
- 22. Windows窗體加載然後退出
- 23. Windows窗體Tabpage加載緩慢
- 24. 加載後立即關閉windows窗體
- 25. 在Windows窗體中加載圖像
- 26. C#Windows窗體永遠加載
- 27. 設置DataGridView快速行高
- 28. 誰在Windows窗體程序中調用窗體加載事件?
- 29. 快速加載網頁
- 30. 加載JSON圖像快速
數據虛擬化。您還可以提高控件的性能(請參閱,例如[this](http://stackoverflow.com/q/4255148/1997232))。但是,如果問題得不到解決,問問題還爲時過早。你有嘗試過什麼嗎?你不滿意什麼? – Sinatr
電網的性能。當我加載這麼多的數據時(gui)會被掛起很多 – Siraj