回答

收藏

如何在其他用户界面上刷新数据?

技术问答 技术问答 190 人阅读 | 0 人回复 | 2023-09-14

在VB.net在应用程序中,我有一个SQL接口,users在SQL这个应用程序的用户使用数据库中有一个表。当用户单击按钮时,所有这些用户现在都看到了相同的数据,并进行了更改和保存sql为用户刷新数据,但我希望在一些用户单击按钮后立即刷新数据。) g' k* J. l  j7 ]% l
我有想法  @: ^" ]1 T, ^2 _( m
[ol]每秒刷新一次数据并不好2 J0 x$ v- i, Q- C. ~
我需要进一步澄清vb.net的SQL触发器![/ol]最有效的方法是什么?" x; v" B: V( C* e
我想没有计时器的工作!* r: c' j7 J( K4 T% o1 \5 y
谢谢
; L, X1 H4 I8 @" p! {9 m; O- p                                                               
3 w! |# T( M, O; x' [- |* T    解决方案:                                                               
) \, K) r% y- Q# ^5 p  {                                                                ~~~~
* F  A- r2 Z0 p! T! C" c8 C! mSQL Server通知服务SQL提供通知的订阅提供了与您需求相关的机制。
% g% y0 m( S5 o: D5 s: o: g8 u# Chttp://msdn.microsoft.com/zh-% F4 v0 z' x9 I* j
CN/library/ms172483(v=sql.90).aspx0 H" p  e+ y  F; q' K: M
注意    :已删除,因为您以后提供使用SQL Server 2008 R2的信息9 v) y( _4 P$ T3 T  X( S
与老把戏 System.IO.FileSystemWatcher另一种方法是在你的表上创建一个SQL触发器可以通过执行简单的文件时间戳来更改。文件本身的大小是0字节,所以我们不写任何操作,所以我们可以快速操作。& }2 s" t$ `' z/ m
然后,所有客户端都会监控文件进行修改,当更改时,监控程序会触发更改,您的客户端可以简单地重新加载数据。: J  C; p- D# O' N1 G
CREATE TRIGGER DataChangedON YourTableFOR INSERT,UPDATE,DELETEAS    EXEC master..xsp_UpdateSignalFile 'YourTable.DataChanged'此CLR存储过程的思想是尽可能快地保持其可伸缩性。如果数据服务器负载很重,则甚至可以通过使用外部进程更新文件来对其进行优化。! ?4 _  v( q) b, k' B! P- \0 T
您可以在此MSDN在文章中找到和Web表单实际上是相关的CLR存储过程的代码,但是除了此CLR除了这个过程,你什么都不需要。也许是对整个系统如何工作的解释。3 r7 O; S: v4 m8 e  n" V
然后,您的客户端将System.IO.FileSystemWatcher用于监控网络位置上的文件变更(此过程将更新文件),并在发生变更时更新其数据。, e8 r8 {9 O" \" w/ I) y5 L
简单优雅的技巧
, `4 E% K6 b& {5 ]$ P3 \+ @,不使用轮询或不必要的数据服务器要求。当然,您可以在多个表上有一个触发器,每个触发器将更改不同的文件,并根据您在客户端上显示的表单,然后在表的生命周期内监控特定的文件。当用户将上下文更改为其他数据时,客户端应用程序将释放文件监控程序(并为其他文件创建新的监控程序)。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则