2010-09-08 85 views
0

實際上,我想爲一個視圖生成一個申請人列表(超過1000),我使用的是sql數據讀取器和genrting列表並傳遞給視圖,但它需要很大的時間( 4到5秒)在View上顯示,當記錄超過500時是正常的。如何將數據列表傳遞到視圖

{

公共靜態ApplicantsList GetListSend(字符串類別,串subDiv) { 串OS = 「N」; if(category ==「SCOS」) os =「Y」; 申請人應用; //申請人類包含姓名,地址,電話//// ApplicantsList APPLIST =新ApplicantsList()等; // ApplicantLst類列表類型// 串sqlcon = ConfigurationManager.ConnectionStrings [ 「的ConnectionString」]的ConnectionString的ToString(); SqlConnection con = new SqlConnection(sqlcon); con.Open(); string SqlQuery =「SELECT [idno],[ApplicantName],[Address],[Status],convert(varchar(10),DateOfApplication,103)DateOfApplication FROM [SCOBC] where(status ='Pending With Dealing Assistant' ')+ SubDiv ='「+ subDiv +」'和os ='「+ os +」'按IDNO排序「; SqlCommand cmd = new SqlCommand(SqlQuery,con); SqlDataReader sdr = null; sdr = cmd.ExecuteReader(); (sdr.HadRows) {sdr.Read()) {= {0};} App.IdNo = sdr [「idno」]。ToString(); App.Name = sdr [「ApplicantName」]。ToString(); App.Address = sdr [「Address」]。ToString(); App.Status = sdr [「Status」]。ToString(); App.DateOfApp = sdr [「DateOfApplication」]。ToString(); AppList.Add(App);

  } 
      sdr.Close(); 
      con.Close(); 
     } 
     return AppList; 
    } 

}

+0

你可以發佈一些你的代碼,所以我們可以看到你到底是怎麼做的? – jessegavin 2010-09-08 19:41:17

+0

我是新的我嘗試複製粘貼代碼,但只有最後一行是代碼形式? – user426306 2010-09-09 06:07:32

回答

0

看到包含這麼多數據的頁面需要很長時間才能呈現並不罕見。下一步是確定頁面生命週期中的哪一部分佔用了太多時間。它可能是SQL調用,HTML呈現或其他內容,但是您真的需要限制問題的範圍,以便有效地計劃如何解決問題。我已經看到了SQL查詢的速度真的很快,但是有大量的數據,HTML頁面非常龐大,它需要瀏覽器永遠呈現它。

2

我不知道這是否是正常的,你的數據庫調用需要4-5s,但什麼是不正常的是顯示不實現分頁的1000個項目在一個單一的視圖列表。

當您實現分頁時,不僅會使頁面變得更小,更易於從用戶中讀取,而且會大大提高性能,因爲您只會提取所需內容。當然,爲了達到這個效果,分頁必須在SQL Server上完成。

+0

好的謝謝,但問題不在於使用分頁 – user426306 2010-09-08 12:54:58

+0

它可以首先生成一個列表(循環),然後genrate查看(再次使用循環)? – user426306 2010-09-08 12:56:43

+0

那麼你將需要優化你的SQL查詢,以便他們花費更少的時間來執行。如果他們不能被優化,你將需要購買更快的硬件,升級帶寬等......不要期待奇蹟。 – 2010-09-08 12:56:45