【问题标题】:Best way get the data for paging concept in web applications in ASP.net在 ASP.net 中的 Web 应用程序中获取分页概念数据的最佳方法
【发布时间】:2013-08-16 02:22:39
【问题描述】:

谁能解释在我的场景中编写代码的最佳方式

我有一些表的数据库,我必须在页面中显示数据库中的数据(每页包含 20 行)

我正在做我的应用程序是 - 我每次都从数据中检索 20 行的数据,以便使用 SP 在每个页面中显示,每个页面点击我都连接到数据库并将数据显示到前端页面。

我的想法是 - 在一次查询执行(单次迭代)中将完整数据放入数据表中,并将数据存储在会话中并在每次页面点击时使用。

这种方式对不对?

以及获取每个页面点击数据的最佳方式。

【问题讨论】:

标签: c# asp.net vb.net


【解决方案1】:

如果检索到的数据量不大,那么可以 - 一次获取所有数据是一种方法。另一方面,如果它有数十万条记录,那么您当前的方法 - 服务器端分页是一个更好的选择。

【讨论】:

    【解决方案2】:

    这是一种不好的方法,因为您是按用户存储的,这意味着访问此页面的每个登录用户都可能拥有自己的所有数据副本。

    做真正的自定义分页,而不是内置分页,它仍然获取整个数据集,然后一次显示一页,所以如果您需要在一页上显示 10 条记录,那么您只需询问您的数据存储(即数据库)10 条记录,仅此而已。它比一次调用更健谈,但您可以更有效地使用内存,并且不会出现第一次加载整个数据集的延迟。

    【讨论】:

    • 唯一的缺点是如果 SP 调用真的很昂贵(时间等)
    • @YuriyGalanter - 这是一种可能性,但我会在这个问题上掷骰子而不是加载一切方法。不过,也许这只是我。 :-)
    • 如果在检索 20 行时出现时间问题,那么我将访问如何检索行并进行重构。
    • @KarlAnderson-您能否详细介绍一下如何使用您的方式。我在asp.net方面不是很有经验,必须处理类似的情况。
    【解决方案3】:

    只需在 Gridview 中显示数据,将 Datasource 设置为 SQLdatasoure 并在 Gridview 属性上设置 AllowPaging = "True" 和 PageSize = "20"。这会做到的。在 SQLDatasoure 上设置 EnableCaching ="True" 如果您不希望对每个页面都进行请求。

    【讨论】:

      【解决方案4】:

      如果钱不是问题,我强烈建议您研究 DevExpress 或 Telerik 控制套件以及支持 IQueryable 的 ORM 工具。

      DevExpress 和 Telerik 网格控件具有开箱即用的分页功能。将网格绑定到 IQueryable 肯定有助于提高性能。

      【讨论】:

      • <personal_opinion>ORM 是邪恶的。</personal_opinion>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多