mar*_*c.d 4 .net sql-server sql-server-2005
我希望我的Windows服务(用.NET编写)来识别何时将新行添加到特定表中,但是我不想从sql-server中提取数据,而是希望使用服务器推送模型.
有人提示我如何实现这一目标吗?我正在使用sql server 2005.
TIA
mar*_*c_s 12
如果您使用客户端ADO.NET与C#或VB.NET,还有ADO.NET SqlDependency机制
SqlDependency对象可以与SqlCommand关联,以便检测查询结果何时与最初检索的结果不同.您还可以将委托分配给OnChange事件,该事件将在关联命令的结果更改时触发.在执行命令之前,必须将SqlDependency与命令关联.SqlDependency的HasChanges属性还可用于确定自首次检索数据以来查询结果是否已更改.
您基本上将a SqlDependency与您的SqlCommand 关联,并提供一个事件处理程序,当构成该SqlDependency的结果集的值发生更改时,该事件处理程序将被调用.
using(SqlCommand cmd = new SqlCommand(queryStatement, _conn))
{
cmd.Notification = null;
SqlDependency dependency = new SqlDependency(cmd);
dependency.OnChange +=
new OnChangeEventHandler(OnChange);
......
}
Run Code Online (Sandbox Code Playgroud)
在事件处理程序中,您可以执行您需要执行的操作.
void OnChange(object sender, SqlNotificationEventArgs e)
{
SqlDependency dependency = sender as SqlDependency;
(do whatever you need to do - e.g. reload the data)
}
Run Code Online (Sandbox Code Playgroud)
渣
| 归档时间: |
|
| 查看次数: |
3681 次 |
| 最近记录: |