【问题标题】:How to Get Database Changes to Display Immediately in an ASP.NET Web Forms Application如何在 ASP.NET Web 窗体应用程序中立即显示数据库更改
【发布时间】:2016-02-03 22:39:38
【问题描述】:

我已经为此搜索了“网络”,但没有找到任何确定的帮助。这是场景:

我有一个带有 .NET Framework 4.0 的 Windows 2003 Server(32 位)。这些东西是没有商量余地的,我也无法改变。

我正在使用 Visual Studio 2012 进行编程,并针对 4.0 框架。这些事情在一定程度上是可以商量的;我的开发机器上还有 Visual Studio 2013 社区,如果有必要,可以使用它。

情况如下:

几个月前,我创建了一组页面,允许特定用户在我维护的 Intranet 站点上更新客户信息。该网站的大部分内容是用 ASP Classic 编写的,所以如果时间允许,我会尝试使用 C# 在 ASP.NET Web 应用程序中重建页面。

这组特定的页面允许用户更新显示在另一个 Web 应用程序中的 GridView 中的不同页面上的客户数据。因此,用户进行更改并且数据库更新正常。但是当他们返回显示客户列表的 GridView 页面时,他们看不到更改。它继续向他们显示未更改的数据。

我在 SO 上找到了一些答案,表明问题是第一次请求和编译时存储在 ASP.NET 临时文件文件夹中的 GridView Web 应用程序的一个版本。当我查看 C:\Windows\Microsoft.NET 下的那个文件夹时,果然,那里有一个文件夹,上面有更新页面应用程序的名称。

我可以使用命令 IISRESET /STOP 停止站点,删除文件夹中的文件,然后使用 IISRESET /RESTART 重新启动站点。这行得通,然后 GridView 将按应有的方式显示更新。但当用户进行多项更改时,它就是一个 PITA。

操作类型无关紧要。在我清除服务器上的临时文件夹之前,任何 CRUD 操作都不会显示在 GridView 上。例如,我第一次遇到这种情况时,有人试图添加一个新客户,当她没有在列表中看到该客户时,她重复了该操作。同样的结果,所以她在她最后联系我之前做了第三次。我做了上面的例程,记录显示很好。

任何类型的更改确实会写入数据库。这方面的 SQL 和编程似乎不是问题。此外,在我的开发机器和最终用户机器上都是如此,所以这似乎也不重要。

我不必清除用户的浏览器缓存。清除服务器上的临时文件夹后,用户可以正常看到更改。

我试图避免每天都转储该临时文件,即使我这样做,每次有人使用这些更新页面时,这个问题都会重新出现。在 cmets 中有人建议我可能没有正确实现我的 GridView,所以就是这样。

任何帮助弄清楚如何使 GridView 应用程序显示最新和最好的更新,而无需刷新该临时文件。

我可以分享任何需要的代码,所以如果您需要查看,请告诉我。

感谢所有提供帮助的人。

【问题讨论】:

  • 您是否考虑过阅读有关 GridView 的完整教程?比如here
  • @yazanpro - 是的,我正在使用该方法进行更改。
  • 好。我仍然认为你没有以正确的方式实现你的网格。下载this演示项目,看看它是如何实现的。
  • @SamAxe,它不是被缓存在浏览器上,而是被服务器缓存。有没有办法阻止这种情况发生?还是在自动更新后刷新它,而不是我现在这样做的手动方式?

标签: c# asp.net .net database gridview


【解决方案1】:

我会查看 Signal R,你会发现 MSDN example here

【讨论】:

  • 他不需要实时解决方案。他只是没有正确使用 Grid 控件。
  • 谢谢,NoMoCouch,我会调查的。
猜你喜欢
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多