none
ASP.Net 資料量太大 DropdownList 導致網頁Error RRS feed

  • 問題

  • 請問 我有一個網頁 上面有Grideview and DropDownList

    如果資料量小網頁一切都正常

    但是資料量太大當dropdownlist change 事件一觸發時 整個網頁就是掛掉

    連設定中斷點都跳不進去 就整個死掉

    想請問遇到這種問題要怎麼處理會比較好

     

     

    2011年5月9日 上午 07:00

解答

  • 六萬多筆的資料,無法一次呈現,因為對user來說沒有太大意義。
    而六百多頁,對user來說可能也不好使用。

    所以通常才會有進階查詢這類的UI,就觀看user experience怎麼設計,讓user可以很快速的找到他要的資料集合列。

    您將10萬筆資料塞進給GridView,會出現錯誤的情況,建議您在GridView屬性那邊,將EnableViewState設成false,再重跑一次看看會不會錯。

    您如果從SQL那邊就有做分頁了,基本上就不會有這問題。(通常一頁不會超過50筆,不過還是要看user習慣),建議您可以看看一般的web mail如何設計,因為通常那上面也是超級大數目的資料量。 

    請參考:http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/2143b610-7e4e-4df9-abab-366ea683a078

    在postback的時候,Control內建的ViewState爆量,太大的資料量post回server時(hidden="ViewState"),超過了web內建限制的4MB,所以掛掉了。


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    • 已標示為解答 htyhzn 2011年5月10日 上午 09:21
    2011年5月10日 上午 03:24
    版主

所有回覆

  • 請先將exception貼上來,掛掉是指什麼樣的狀況。
    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年5月9日 上午 07:31
    版主
  • 請問你所謂的資料量太大,是有多少資料呢?
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年5月9日 上午 07:57
  • 如果是資料量太大,導致後面的data access timeout了,

    1. 調校您的SQL statement,看一下哪裡出問題,是否SQL下錯了,table沒有設定index,減短測試的時間的話,可以先把timeout設小一點。
    2. GridView請透過分頁的方式去取資料

    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年5月9日 上午 10:04
    版主
  • 謝謝各位的回覆 但是SQL語法是都沒有問題

    資料量大概6萬多筆資料 & 10多個Column

    我也是有做分頁 10000筆一頁

    我還有把資料給存到ViewStat 因為不想一值去撈資料庫

    如果只有幾萬筆都還ok 就是資料量太大就無法作用

    而錯誤畫面就只是很單存如下

    The page cannot be displayed

    The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.

     

     

     

     

     

    2011年5月10日 上午 12:33
  • 若把六萬多筆資料放到VIEWSTATE似乎不太妥當,我想效能應該不會太好才對,或許以你的狀況可以考慮在SERVER端做分頁。

    http://www.dotblogs.com.tw/code6421/archive/2008/05/07/3895.aspx

    http://www.dotblogs.com.tw/xavier/archive/2009/04/07/7912.aspx

    http://blog.miniasp.com/post/2007/12/12/Paging-using-simple-T-SQL-in-SQL-Server.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年5月10日 上午 12:46
  • 想要請您把題目說清楚一點:

    尤其是這一句讓我困惑-- 但是資料量太大當dropdownlist change 事件一觸發時 整個網頁就是掛掉

     

    您是把大量資料,放進 DropDownList or GridView?

     

    1.  如果是 GridView,可以使用(啟動)他的分頁功能

     

    2.  如果是放進 DropDownList,那就好玩了。

    誰有能力、有空去拉幾萬筆記錄呢?(UI設計上的不合理)


    我的書 與 ASP.NET教學網站 http://www.dotblogs.com.tw/mis2000lab/
    2011年5月10日 上午 01:16
  • 10000筆一頁實在太多了,對user來說,一次要讓一萬筆呈現在頁面上,真的是需要的嗎?
    Gmail預設一頁也才50筆。

    再來,Gridview的資料請不要存在ViewState,您存在ViewState就是網頁掛掉的原因,因為一萬筆資料轉成ViewState,size相當可觀,即使沒死掉,也會讓網頁Render變很慢,很久,在本機端測試或許還沒感覺,但您可以看看你畫面上如果可以呈現大資料量,您的page size有多大,可能有好幾MB。 


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年5月10日 上午 01:25
    版主
  • 我個人也是覺得那麼多的資料怎麼消化

    可是六萬筆資料一頁100筆 600頁也是沒有辦法看

    我想這個問題應該要重資料呈現的問題去下手

    謝謝各位的指教.

     

    但是有關於GrideView 和 Dropdownlist的問題

    我自己其他的Case也是有遇到

    我把10萬筆資料DataTable Bind 進去 Grideview 沒有存 ViewStat

    某個欄位distinct 大概有20筆資料放進dropdownlist

    當dropdownlist  change event 觸發時 也是會遇到我之前所說的連 Debug 中斷都進不去 整個網頁就出現

    The page cannot be displayed

    The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.

    我想是資料量太大了

    以前ASP可以去改緩衝區Size 至少資料量大 可以顯示

    但是Asp.Net 我就不是很清楚

     

    2011年5月10日 上午 03:00
  • 六萬多筆的資料,無法一次呈現,因為對user來說沒有太大意義。
    而六百多頁,對user來說可能也不好使用。

    所以通常才會有進階查詢這類的UI,就觀看user experience怎麼設計,讓user可以很快速的找到他要的資料集合列。

    您將10萬筆資料塞進給GridView,會出現錯誤的情況,建議您在GridView屬性那邊,將EnableViewState設成false,再重跑一次看看會不會錯。

    您如果從SQL那邊就有做分頁了,基本上就不會有這問題。(通常一頁不會超過50筆,不過還是要看user習慣),建議您可以看看一般的web mail如何設計,因為通常那上面也是超級大數目的資料量。 

    請參考:http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/2143b610-7e4e-4df9-abab-366ea683a078

    在postback的時候,Control內建的ViewState爆量,太大的資料量post回server時(hidden="ViewState"),超過了web內建限制的4MB,所以掛掉了。


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    • 已標示為解答 htyhzn 2011年5月10日 上午 09:21
    2011年5月10日 上午 03:24
    版主