实际上我想在一个视图上生成一个申请人列表(超过1000个),因为我正在使用sql数据阅读器并将一个列表和传递给视图,但它需要很长时间(4到5秒)才能显示当记录超过500时查看是正常的。
{
public static ApplicantsList GetListSend(string category,string subDiv) { string os =“N”; if(category ==“SCOS”) os =“Y”; 申请人申请; //申请人类包含姓名,地址,电话等//// ApplicantsList AppList = new ApplicantsList(); // ApplicantLst Class List type // string 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)as DateOfApplication FROM [SCOBC] where(status ='Pending With Dealing Assistant'and category ='“+ category +”')和SubDiv ='“+ subDiv +”'和os ='“+ os +”'按idno排序“; SqlCommand cmd = new SqlCommand(SqlQuery,con); SqlDataReader sdr = null; sdr = cmd.ExecuteReader(); if(sdr.HasRows) { while(sdr.Read()) { App = new Applicant(); 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(应用程序);
}
sdr.Close();
con.Close();
}
return AppList;
}
}
答案 0 :(得分:2)
我不知道您的数据库调用需要4-5秒是否正常,但不正常的是在单个视图上显示1000个项目的列表而不实现分页。
当您实施分页时,不仅会使您的页面变得更小,更容易从用户那里阅读,而且会大大提高性能,因为您只会获取所需内容。当然,为了使其有效,必须在SQL Server上进行分页。
答案 1 :(得分:0)
看到包含如此多数据的页面需要很长时间才能呈现,这并不罕见。下一步是确定页面生命周期的哪一部分占用了这么多时间。它可能是SQL调用,HTML的呈现或其他东西,但您确实需要限制问题的范围,以有效地计划您将如何修复它。我已经看到它在SQL查询非常快的地方,但是由于数据量很大,HTML页面非常庞大,以至于它需要Web浏览器永远呈现它。