0
嗨我想實現Sql依賴到我的Windows服務代碼。我已經把我的服務經紀人設置爲真實。我在Windows On Start方法中編寫了此代碼。 OnDependencyChange方法應該在表中有新條目時立即開始。但它從未發生過。 這裏是我的代碼,SqlDependency沒有觸發c#
System.Data.SqlClient.SqlDependency.Start("connection
string;database=dbName;Integrated Security=True;");
SqlConnection connection = new SqlConnection("connection
string;database=dbName;Integrated Security=True;");
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT * FROM
UserDetails", connection))
{
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new
OnChangeEventHandler(OnDependencyChange);
using (SqlDataReader reader = command.ExecuteReader())
{
// Process the DataReader.
}
}
void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
// Handle the event (for example, invalidate this cache entry).
}
請幫助。
您不能使用'SELECT * FROM ...',而是使用'SELECT col1,col2,col3 FROM ...'。 – Maarten
感謝您的回覆Maarten。我也檢查過。沒有運氣.. – Dezler
除了明確指定您關心的列外,您還可能需要指定表中存在的模式 - 「SELECT col1,col2 FROM dbo.UserDetails」。如果它仍然不起作用,請確保您試圖連接的SQL Server實例上的Service Broker功能已啓用。 – Tom