我想利用SQL Server通知在Winforms应用程序中的数据库中捕获插入事件。我正在尝试使用SQLDependency对象。 MSDN文章使这看起来非常简单。所以我创建了一个小示例应用程序来尝试一下。当我第一次进入我的应用程序(MessageBox出现)时,事件似乎只会发生。将数据插入表中并不会引发看起来像的OnChange事件。有人能告诉我我错过了什么吗?谢谢!SQL Server通知 - 我的OnChange不会触发
public Main()
{
InitializeComponent();
var check = EnoughPermission();
SqlDependency.Stop(constr);
SqlDependency.Start(constr);
if(connection == null)
{
connection = new SqlConnection(constr);
}
if(command == null)
{
command = new SqlCommand("Select ID, ChatMessage FROM dbo.Chat",connection);
}
connection.Open();
command.Notification = null;
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
command.ExecuteReader();
}
private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
MessageBox.Show("Change!");
}
你在哪里插入数据?一个SELECT语句不是一个INSERT。 – 2009-12-15 00:24:23
我将数据插入到查询分析器中。对插入的良好调用不是SELECT选择:)需要选择以向数据库表示正在监视通知的数据。 – Nick 2009-12-15 00:27:45
请注意,我将该SELECT交给SqlDendency对象。 – Nick 2009-12-15 00:28:58