【问题标题】:How to pass data list to Views如何将数据列表传递给视图
【发布时间】:2011-04-09 17:36:56
【问题描述】:

实际上,我想在一个视图上生成一个申请人列表(超过 1000 个),因为我正在使用 sql 数据阅读器并生成一个列表并传递给视图,但它需要很长时间(4 到 5 秒)才能显示记录超过500条时查看是正常的。

{

public static CandidatesList GetListSend(string category, string subDiv) { 字符串 os = "N"; 如果(类别==“SCOS”) os = "Y"; 申请者App;//申请者类包含姓名、地址、电话等//// ApplysList AppList = new ApplysList();//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) as DateOfApplication FROM [SCOBC] where (status = 'Pending with Dealing Assistant' and category ='" + category + "') and SubDiv ='" + subDiv + "' and os ='" + os + "' order by idno"; SqlCommand cmd = new SqlCommand(SqlQuery, con); SqlDataReader sdr = null; sdr = cmd.ExecuteReader(); 如果(sdr.HasRows) { 而(sdr.Read()) { 应用程序=新申请人(); App.IdNo = sdr["idno"].ToString(); App.Name = sdr["ApplicantName"].ToString(); App.Address = sdr["地址"].ToString(); App.Status = sdr["状态"].ToString(); App.DateOfApp = sdr["DateOfApplication"].ToString(); AppList.Add(App);

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

}

【问题讨论】:

  • 您能否发布一些您的代码,以便我们准确了解您目前的工作情况?
  • 我是新手,我尝试复制粘贴代码,但只有最后一行是代码形式?

标签: asp.net-mvc model-view-controller


【解决方案1】:

我不知道您的数据库调用需要 4-5 秒是否正常,但不正常的是在没有实现分页的情况下在单个视图上显示 1000 个项目的列表。

当您实施分页时,您不仅可以使您的页面更小,更易于用户阅读,而且还可以大大提高性能,因为您将只获取需要的内容。当然,为了有效,分页必须在 SQL Server 上完成。

【讨论】:

  • 是否可以先生成列表(循环)然后生成视图(再次使用循环)?
  • 那么您将需要优化您的 SQL 查询,以减少它们的执行时间。如果它们无法优化,您将需要购买更快的硬件、升级带宽等……不要指望奇迹。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多