查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
soupjvc999

 發表於 2008-4-18 02:25 PM

ithinkurdumb  與  dayi的方法不錯喔!!
受教了!!


psycho

 發表於 2008-4-4 11:48 AM

JAVA 可以用ajax和comet
來傳資料


ma1111

 發表於 2008-3-29 07:41 PM

天下沒有白吃的午餐,
這種RAD導向的控制項效率一向如此,
重點在fetch cache的時間點及地方,
樓上有些建議是可行的


dayi

 發表於 2007-3-3 06:25 PM

先說明,我沒實做過.net的DataGridView
我是用java做過datagrid
在遇到大量資料時會"爆慢",十萬筆要等上一分多鐘
後來找出原因
是在於datagrid要滿足一個條件
"資料全部fetch到本端"
這時才會顯示
後來我就在datagrid上動手腳,給一個fetch row的變數 N
datagrid只要抓到N rows之後就當做完成,便把資料顯示出來
再利用元件本身是動態資料來源的特性,在後端繼續把資料丟到grid裡
這樣就可以達到效率和資料完整性的平衡

給您參考一下


ithinkurdumb

 發表於 2007-3-3 04:24 PM

第一個問題是因為ADO.NET是針對SqlClient來開發的,
所以碰到OleDbClient的時候一定有performance penalty,
要是資料量狠大,
penalty會相當嚴重.
這也是為什麼Microsoft這兩年來一直在鼓勵developers把Windows Application的資料庫從Access改成SQL Express或是SQL Mobile.

其次是DataGridView本身的設計所造成的.
DataGridView是一個非常有彈性的架構,
不過預設並沒有對大量的資料做最佳化.
關於如何將DataGridView針對大量的資料做最佳化,
可以參考這篇MSDN: http://msdn2.microsoft.com/en-us/library/ha5xt0d9.aspx
其他的資料可以參考: http://msdn2.microsoft.com/en-us/library/ms171621.aspx

最後還有一點在某些情況也能夠大幅提高效能,
就是在能用DataReader的時候盡量用.
如果只是要從database把資料拉出來,
而且不需要排序 (或是能用sql query / stored procedure等等來排序),
就使用DataReader.
DataReader的效率是所有data access method中最好的 (而且超出其他狠多).

希望有幫助囉 ;)


htkstw

 發表於 2007-2-20 10:35 AM

糟了!也許是發在這一區, 讓你誤認為是網頁相關的程式問題, 其實不是, 純粹是windows應用程式的問題.

搞了這許多天來, DataGridView這個問題始終還是沒解. 真是讓我很奇怪, 怎麼大家都沒遇到這種狀況嗎? 如果真是這樣, 那應該是我個人寫程式的關係了, 只是一直找不到答案, 所以也一直卡在這裡.

我前天做了一個小實驗, 以3600筆6個欄位的資料來做, 一樣DataGridView繫結資料庫直接顯示出來要5~6秒(這也太離譜了!). 但是如果只用變數取出來, 不在DataGridView顯示, 則是立即就完成了, 這中間還需要先經過判斷是否為NULL值呢! 由此我判斷, 問題應該不在於資料庫物件, 而在於DataGridView物件本身了.

如果再參考到我上面說的第一例, 我想, 應該在DataGridView物件在取出資料並顯示的這一段過程的問題, 只是如何解決我一直找不到, 啊~~~~~太悲慘了!


steven211

 發表於 2007-2-19 10:26 PM

這個問題跟我上次遇到的有點類似,
http://twed2k.org/viewthread.php?tid=131037&extra=page%3D1
我想主要的速度瓶頸是出在broser吧!
當broser接收網頁的Tag然後轉成我們可視的網頁時也是需要CPU下去處理的,
當你遇到資料一多時就是會發生這種問題,
你可以先打開工作管理員並在Load網頁的時候觀查看看CPU是否滿載,
你是做統計分析類的報表嗎?
不然可以嘗試用使用分頁顯示。


htkstw

 發表於 2007-2-16 06:53 PM

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

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

現在我再用DataGridView直接連結oledb資料庫來顯示資料, 資料筆數是16000筆, 結果要等上10~15秒鐘才會顯示出來, 即使以上述方法也沒辦法有效率的立即顯示出來.

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

謝謝.





所在時區為 GMT+8, 現在時間是 2024-5-5 02:12 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.018174 second(s), 7 queries , Qzip disabled