如何清除gridview分页中使用的Session
我在Gridview中实现了分页,为了避免频繁地重新连接数据库,我使用Session来存储数据。这样当Gridview的页面索引发生变化时就可以从Session中检索数据。 但我的问题是,我什么时候应该清除这个会话,因为它只能用于这个页面。如果我使用 ViewState 那么如果数据量增加就不好了。
期待您的宝贵建议......
提前致谢
苏普里亚
I have implemented paging in Gridview and in order to avoid frequent Reconnection with database,I used Session to store data.So that data could be retrieved from session on changing page index of Gridview.
But my problem is that when should I clear this session as it's usable only for this very page.And if I use ViewState then it will not be fine if data increases in amount.
Looking forward for valuable suggestion of yours.....
Thanks in advance
Supriya
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该将任何数据保存到会话中。如果数据控件需要每页数据,则可以在每次页面更改时从数据库中仅选择所需的行。
因此,如果您有 100 行且每页 10 行,那么您应该在数据控件的每个 PageChange 中检索 10 行。这是完全可以接受的,尤其是与缓存结合使用时。
如果您使用的是 SQl 2005,请参阅此帖子:
http://weblogs.asp.net/scottgu/archive/2006 /01/07/434787.aspx
You should not be saving any data to sessions. If the data control requires data per page it is fine to select only the rows you need from the data base per page change.
So if you have say 100 rows and 10 rows per page, then you should be retrieving 10 rows per PageChange of the data control. This is perfectly acceptable especially when combined with caching.
Ifyou are using SQl 2005 see this post:
http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx
我认为您不应该担心数据库连接。连接池将采取这种情况。您必须在获得分页记录后立即打开连接并关闭连接。
如果您将记录存储在视图状态/缓存中,这将不必要地使用资源,并且可能与数据库不同步。我认为这是一个不好的方法。
每次更改页面并从数据库检索记录时都应该进行调用。
希望有帮助。
I don't think you should worry about the database connections. Connection pooling will take case of that. You have to open connection and close as soon as you get paged records.
If you store your records in viewstate/cache this will unnecesarily use resources and might be out of sync with database. I consider it as a bad approach.
You should make a call each time you change page and retrieve records from db.
Hope it helps.