none
請教 VB.NET 2005 DataGridView 的效率 RRS feed

  • 問題

  • 剛想從 VB6 想跳至 VB.NET 2005 就遇到這個棘手的問題...

    我用 DataGridView 顯示一個陣列清單的資料, 資料筆數是10000筆, 結果要等上7~10秒鐘才會顯示出來, 經過我找尋解決的方法後, 只要 VirtualMode 設成 True, AutoSizeColumnsMode 設成 None, 效率則可以大大的提升到瞬間即顯示出來.

    現在我再用 DataGridView 直接連結 oledb access 資料庫來顯示資料, 資料筆數是16000筆, 結果要等上10~15秒鐘才會顯示出來, 即使以上述方法也沒辦法有效率的立即顯示出來. 最令我不可思議的是, 即使我篩選成只有1000筆, 效率也不是很好.

    我在網路上找了好久, 一直沒找到關於這方面的資訊, 怎麼大家使用都沒有這個問題嗎? 大陸那邊有人說過連結資料庫要顯示大量資料時, DataGridView 的效率是很差的, 這是真的嗎? 請問有沒有辦法解決?

    謝謝.

    • 已移動 璉璉 2010年1月4日 上午 03:11 (從:Visual Studio一般討論區(General))
    2007年2月19日 上午 02:14

解答

  • 如果你把 DataGridView.AutoGenerateColumns 設為 false,然後定義好欄位呢?
    你還要確定由資料庫撈資料出來的時間不會影響到到 DataGridView 的顯示時間(也就是 10-15 秒必須要扣除資料庫存取的時間)。
    • 已標示為解答 璉璉 2010年1月4日 上午 03:11
    2007年2月19日 上午 09:31
    版主

所有回覆

  • 如果你把 DataGridView.AutoGenerateColumns 設為 false,然後定義好欄位呢?
    你還要確定由資料庫撈資料出來的時間不會影響到到 DataGridView 的顯示時間(也就是 10-15 秒必須要扣除資料庫存取的時間)。
    • 已標示為解答 璉璉 2010年1月4日 上午 03:11
    2007年2月19日 上午 09:31
    版主
  • DataGridView.AutoGenerateColumns 是設為 false 沒錯.

    我將我的問題寫成一個測試專案, 如果可以的話, 能否請你下載回去試試看, 並請指正我寫的指令是否有誤:

    http://www.edobi.com/datagridview_test.zip

    ps. 這裡面包含一個 10001 筆資料的 MICROSOFT ACCESS 的資料庫. 順便一提, 我用的是 MICROSOFT ACCESS 2000 的資料庫格式, 不知道是否有關係?

    2007年2月19日 下午 01:43