【问题标题】:How to clear Session used in paging of a gridview如何清除在gridview的分页中使用的会话
【发布时间】:2012-02-10 09:27:06
【问题描述】:

我已经在Gridview中实现了分页,为了避免频繁的重新连接数据库,我使用Session来存储数据。这样就可以在改变Gridview的页面索引时从会话中检索数据。 但我的问题是,我什么时候应该清除这个会话,因为它只能用于这个页面。如果我使用 ViewState,那么如果数据量增加,那就不好了。

期待您的宝贵建议.....
提前感谢
苏普里亚

【问题讨论】:

  • 更好的方法是检索每个页面的行。但它需要为每个页面点击获取数据。如果数据很大,加载所有数据并保持在会话中会导致性能问题,并可能导致内存不足的异常。
  • 你最好使用缓存而不是会话/视图状态......这样我们可以保留一些过期时间,以便自动完成......如果它对所有用户都是通用的......

标签: asp.net session gridview paging


【解决方案1】:

您不应将任何数据保存到会话中。如果数据控件需要每页数据,则可以只从数据库中选择每页更改所需的行。

因此,如果您说每页有 100 行和 10 行,那么您应该在数据控件的每个 PageChange 检索 10 行。这是完全可以接受的,尤其是与缓存结合使用时。

如果您使用的是 SQl 2005,请参阅此帖子: http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx

【讨论】:

    【解决方案2】:

    我认为您不必担心数据库连接。连接池将处理这种情况。您必须打开连接并在获得分页记录后立即关闭。

    如果您将记录存储在视图状态/缓存中,这将不必要地使用资源并且可能与数据库不同步。我认为这是一种不好的方法。

    每次更改页面并从数据库中检索记录时,您都应该拨打电话。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 2016-10-29
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多