免责声明:我必须使用microsoft数据库,并且我不能将我的应用程序连接到服务器来订阅任何服务。
我正在使用VB.net创建一个WPF应用程序。我正在基于access数据库的记录填充一个列表视图,当应用程序加载并填充数据集时,我会查询该数据库。然后,我使用向用户显示数据,具体取决于过滤器和诸如此类的内容。
但是..。access表在一天中被多次修改,这意味着如果用户不重新加载应用程序,那么随着时间的推移,用户将拥有“旧数据”。是否有方法将access数据库连接到VB.net应用程序,以便在数据库中添加、删除或修改记录时引发事件?我对事件处理程序中所需的任何代码都没有意见。我只需要想出一种从access表触发vb.net应用程序事件的方法。
把我想要做的事情想象为查看数据库表的实时编辑,但在应用程序中。任何帮助都是非常感谢的,如果你需要澄清的话,请告诉我--我只是需要一个总体方向,我很乐意做更多的研究。
我的解决方案是:
发布于 2012-05-21 02:02:33
有几种方法可以做你想做的事,但是你在你的过程中基本上是正确的。
据我所知,没有从数据库驱动程序获取事件的直接方法,无法让您知道某些更改,因此轮询是唯一的解决方案。
在任何情况下,您都需要监视您的审计或数据表。
您可以根据数据库上的负载、客户端的数量等来监视更改的频率,这取决于数据库上的负载、客户端的数量等等,您可以轻松地检查几秒钟。
不过,我建议你:
发布于 2012-05-20 19:52:03
如果您正在使用Server,则为
直到SQL 2005,您可以使用通知服务。
自Server 2008 R2以来,它已被StreamInsight取代
其他数据库管理系统和备选方案
或者民意测验。这要求您配置时间间隔,这样您就不会错过太长时间的更改。
(一般)
当服务器必须能够向客户端发送消息时,它需要对客户端保持通道/套接字打开,这可能会变得非常昂贵,因为有很多客户端。我建议不要推服务器,并尝试进行智能轮询。智能轮询意味着尽可能大的间隔,并在服务器上进行适当的缓存,以防止对相同数据多次访问数据库。
https://stackoverflow.com/questions/10676557
复制相似问题