2012-02-04 62 views
0

我有一個Web應用程序,允許用戶上載Excel電子表格,以便一次將〜250,000條記錄插入數據庫。我希望有一個進度條,向用戶顯示進程的距離。監視長插入/更新查詢的進度

這裏是我的基本計劃

  1. 上傳電子表格
  2. 寫總ExcelRow CountTempTable
  3. 遍歷細胞每行構建SQL和執行(每行)
  4. 客戶端發出的查詢中阿賈克斯每3秒致電一次Count(*) From TempTable Group By ExcelRowID
  5. 更新進度條直到100%

有沒有更好的方法來做到這一點?有什麼我應該注意的嗎?這會工作嗎?

我使用ASP.Net 4.0,SQL Server 2008 R2的快車,EPPlus 3.0和jQuery 1.7.1

+0

對每一行執行查詢會不會慢得多?如何配料,而不是跟蹤有多少批次已完成,剩下多少批次? – 2012-02-04 18:27:18

+0

@RogerLindsjö所以也許可以批量做10,000行,但仍保持相同的總體結構? – Greg 2012-02-04 18:29:03

+0

我認爲如果你的「服務器端」跟蹤更新進度而不是查詢數據庫,那會更好。所以,基本上上傳包含一個ID,你可以查詢有關Ajax的進展。對於每個批次更新id的狀態(即ajax查詢)。這也可以讓你同時執行幾個這些上傳。 – 2012-02-04 18:39:05

回答

0

我最終只是近似的時間,使一個非常複雜進度來娛樂用戶。