1

我想创建在另一个用户从数据库更新表值时更新其控件属性的应用程序。我通过计时器的帮助每秒刷新一个控件来找到一个解决方案,但这不好我想在更新一个值后更改而不是每秒请求一次 SQL Server?

4

2 回答 2

2

基本上你需要在表更新时发布 SQL。这称为推模型(相反的是您现在正在做的拉模型)。

您可以为此使用 SqlDependency。请参阅http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency%28v=vs.100%29.aspx

但是,有一些与推送方法相关的开销。许多应用程序只是每 n 秒 (3 - 10) 执行一次查询,然后仅在属性更改时更新控件。

这确实是一种优化权衡。发出网络请求(拉模型)是否比让 SQL 服务器执行触发器然后发送更新消息(推模型)更“昂贵”?

于 2013-01-27T05:27:23.543 回答
1

您可以为此使用SqlDependency ,而无需轮询。

在 C# Windows 应用程序中实现 SQL Server 2005 查询通知

于 2013-01-27T05:26:44.850 回答