【发布时间】:2010-09-29 08:13:53
【问题描述】:
假设您有一个带有组件的表单,该组件显示来自 SQL 服务器视图的数据。该组件类似于 ListView 或 DataGrid - 基本上可以以 2D 网格格式显示数据。另一个应用程序更改 SQL 视图描述的数据,并定期执行此操作,但间隔未定义。
问题在于:表单需要使用最新数据保持自身更新,并在其更改和显示之间的延迟最短。
平台限制是您必须使用 .NET 2.0 和 Microsoft 的 SQL Server。 假设您可以完全控制该系统的所有其他部分,并且可以按照您想要的方式进行设计 - 最好的方法是什么?
到目前为止我想到的那些:
-
定期轮询数据并进行比较以查看发生了什么变化。通过:
- 从 SQL Server 读取整个视图并将其与当前显示的数据逐行进行比较,在显示的数据进行时更新显示的数据,或者
- 以某种方式记录视图更改表(使用触发器或应用程序逻辑),每次读取其中的新项目,并将其应用于显示的数据。
在 SQL Server 与表单和更新应用程序之间添加一个层,因此来自主应用程序的任何更新都会转到此处,并且可以实时通知表单应用程序的更改。但不确定如何在实践中做到这一点。
在表上放置触发器以某种方式导致表单被通知 - 可能调用一些自定义扩展存储过程?
任何曾经做过这件事的人,请提供您的见解!
如果您知道任何现有的库已经完成了这一切,请发表评论。
【问题讨论】:
-
对不起,这是一个带有 HTTP 的 webapp 还是客户端和服务器之间的任何东西?架构很重要...
-
不,它不是网络应用程序。进行更新的应用程序和进行显示的应用程序都是窗体应用程序。
标签: .net sql-server winforms