2011-03-22 75 views
1

嗨 假設我必須爲我的客戶列出數千條記錄。 我應該如何實施?有人說我必須從數據庫中檢索300或400條記錄,並將這些記錄顯示給客戶端。但我認爲分頁會有一些問題。如果我從數據庫中獲取所有記錄,那麼我將遇到性能問題。有人說要實施我們自己的商店程序。我應該怎麼做?如何顯示數千條記錄?

感謝

+0

WinForms,Web Forms,XAML ...您的UI是什麼? – 2011-03-22 02:57:11

+1

是什麼讓你相信分頁會出現問題?如果你不使用分頁,你怎麼知道你會遇到性能問題?無論您是否使用存儲過程取決於您,它對於您是否可以同時在電線上放置數千條記錄沒有影響。我建議不要考慮「有些人說」,而要看看當前項目的實際需求。他們是什麼? – 2011-03-22 02:59:02

+0

您可以一次在客戶端上顯示幾十/百/千條記錄,也可以一次加載全部記錄。如果你想提供更好性能的幻想,最初加載前100個,然後獲得後臺線程來獲取其餘記錄(可能在幾次迭代中)並更新列表,而用戶已經可以看到一些結果。 – Ozzah 2011-03-22 03:04:00

回答

1

你一定要使用分頁,而不是在一次檢索的所有記錄,我建議使用一些ORM工具來抽象分頁所需查詢的複雜性,如果使用LINQ那將是一件很簡單:...跳過((pageNo-1)* pageSize).Take(pageSize)

+0

>>我不知道LINQ。我只是使用Typed DataSet。 – kevin 2011-03-22 03:10:18

1

我贊成發送約100條記錄到頁面,通過JavaScript對它們進行分頁,並在批處理中檢索更多記錄一些更高的數字,比如說1000,當用戶導航到卸載數據時。如果你不能強制用戶使用JavaScript,那麼所有這些都沒有腳本回退鏈接。

(不知道這是多麼容易與C#框架; Java的檢票,這是很容易的)

1

分頁記錄!這將是唯一的解決方案(你還沒有嘗試的方式!)。您可以添加按鈕控件以在頁面之間移動,並且可以在頁面加載時將數據加載到頁面。或者記錄可以一次加載並存儲在應用程序中,並在顯示頁面時向用戶顯示。

+0

我的記錄最終可能會達到__200,000__。所以我認爲我不應該一次加載全部。你覺得我應該怎麼做? – kevin 2011-03-22 03:35:56

1

尋呼絕對是對此的一個答案。但是 - 做SQL存儲過程中的所有匹配..而不是取決於GridView的默認分頁...

如果你不想使用分頁(有些客戶非常堅決顯示所有記錄),那麼你可以使用滾動事件即時獲取記錄。如果您使用Web應用程序,則可以通過傳遞頁面號,頁面大小等來使用Ajax Call來獲取下一組記錄......