如何将数据列表传递到视图

问题描述:

实际上,我想为一个视图生成一个申请人列表(超过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

看到包含这么多数据的页面需要很长时间才能呈现并不罕见。下一步是确定页面生命周期中的哪一部分占用了太多时间。它可能是SQL调用,HTML呈现或其他内容,但是您真的需要限制问题的范围,以便有效地计划如何解决问题。我已经看到了SQL查询的速度真的很快,但是有大量的数据,HTML页面非常庞大,它需要浏览器永远呈现它。

我不知道这是否是正常的,你的数据库调用需要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