0
こんにちは私はWindowsサービスコードにSql依存関係を実装しようとしています。私はすでにサービスブローカーを真として設定しています。私はこのコードをWindows On Startメソッドの中に書いています。メソッドOnDependencyChangeは、テーブルに新しいエントリがあるとすぐに開始する必要があります。しかしそれは決して起こらない。 はここSqlDependency Not firing 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