我想利用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