我希望我的 Windows 服务(用 .NET 编写)能够识别何时将新行添加到特定表中,但我想使用服务器推送模型而不是从 sql-server 中提取数据。
有人对我如何实现这一点有提示吗?
我正在使用 sql server 2005。
蒂亚
最佳答案
如果您将客户端 ADO.NET 与 C# 或 VB.NET 一起使用,还有 ADO.NET SqlDependency 机制
您基本上将 SqlDependency
与您的 SqlCommand 相关联,并提供一个事件处理程序,当构成该 SqlDependency 结果集的值发生更改时,该处理程序将被调用。
using(SqlCommand cmd = new SqlCommand(queryStatement, _conn))
{
cmd.Notification = null;
SqlDependency dependency = new SqlDependency(cmd);
dependency.OnChange +=
new OnChangeEventHandler(OnChange);
......
}
在事件处理程序中,您可以做任何您需要做的事情。
void OnChange(object sender, SqlNotificationEventArgs e)
{
SqlDependency dependency = sender as SqlDependency;
(do whatever you need to do - e.g. reload the data)
}
马克
关于.net - 是否有类似于 Sql Server 表的 FileSystemWatcher 的东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1311924/