如何刷新页面时在数据库表记录在ASP.Net 3.5得到改变(How to refresh a pa

2019-10-17 14:57发布

我有一个包含一个GridView显示从数据库表如“tblEmployee”记录的页面。 在该表中如果一个记录被插入/更新/删除,然后我需要我的页面重新加载,以便在GridView将显示更新的记录。 记录可以被插入/更新/从任何其他应用程序中删除。 重新绑定的GridView我必须重新加载页面。 假设我在浏览器中打开页面,并没有回传完成。 10分钟后记录是否已被其他应用程序插入到表中。 我怎样才能通过单击刷新按钮时,在数据库表中的记录改变自动重新加载页面,而不是手动? 我使用SQL Server 2005中的DB和ASP.Net 3.5(C#)

请建议如何实现这一点。

谢谢。

Answer 1:

下面是一个使用触发器,另一个使用的SqlDependency两种方法......一个。 我会建议使用的SqlDependency,但我概述另一种方法,因为你指出麻烦的SqlDependency。

创建与表名和最后更新日期列的表。 创建于tblEmployee触发器来更新该表上的任何插入/更新/删除。

当加载页面时,你要存储表为当前的上次更新日期。 根据您的页面是如何设置,你可以将其存储在ViewState中或在页面上隐藏字段。 然后,你需要轮询更改。 有很多方法可以做到这一点。 你可以写一个返回的最后更新日期一个简单的页面的方法,从JavaScript调用它,并将其与您存储在隐藏字段的日期。 或者你可以使用一个UpdatePanel一个Timer控件,并比较你存储在ViewState中的值。

现在,这种方法访问数据库超过必要的。 如果这是一个问题,使用的SqlDependency与SQL 2005或更高版本。 创建的SqlDependency和插入当前日期与此依赖对象的缓存。 如上所述,从页面查询该缓存项。 当相关性改变(OnChange事件),再次更新缓存项的日期。



Answer 2:

我看到有一个轮询机制,即使用的setTimeout +的jQuery或ASP.NET AJAX定时器拉动间隔的信息没有其他选择。

基本上你想要的是让服务器通知更新已经发生并在Web / ASP.NET应用程序的通信总是由客户端发起的客户端。 所以投票是唯一的选择。



Answer 3:

您可以使用SqlDependency类:

这里有一个入门例子: 的SqlDependency在ASP.NET应用程序(ADO.NET)



文章来源: How to refresh a page when record in db table get changed in ASP.Net 3.5