Hallo Ich versuche Sql Dependency in meinem Windows-Service-Code zu implementieren. Ich habe meinen Service Broker bereits als wahr gesetzt. Ich habe diesen Code in Windows On Start-Methode geschrieben. Die Methode OnDependencyChange sollte starten, sobald ein neuer Eintrag in der Tabelle vorhanden ist. Aber es passiert nie. Hier ist mein Code,SqlDependency Nicht feuern 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).
}
Bitte helfen.
Sie können nicht 'SELECT * FROM ...' verwenden, stattdessen 'SELECT col1, col2, col3 FROM ...'. – Maarten
Danke für die Antwort Maarten. Das habe ich auch überprüft. Kein Glück. – Dezler
Neben der expliziten Angabe der Spalten, die Ihnen wichtig sind, müssen Sie möglicherweise auch das Schema angeben, in dem die Tabelle existiert: 'SELECT col1, col2 FROM dbo.UserDetails'. Wenn es immer noch nicht funktioniert, stellen Sie sicher, dass die Service Broker-Funktion in der SQL Server-Instanz aktiviert ist, mit der Sie eine Verbindung herstellen möchten. – Tom