イベントをカスタムパラメータでバインドする際に問題があります。次回のサブスクライブ中にサブスクライブしないでください。基本的に1回目の購読イベントの場合、1回目のイベントを保持し、2回目の購読時に新しいイベントを作成します。 2つのイベントがあり、3つ目は3つのイベントがあることを意味します。しかし、私は1つのイベントが毎回購読し、最後のイベントを退会している間だけ必要です。イベントをsqldependencyでバインドし、Cでサブスクライブする方法#
- dependency_Update機能
public void dependency_Update(Guid clientid)
{
SqlDependency.Stop(connString);
using (SqlCommand command = new SqlCommand(SQL.newemailmessagescountbyclient_sql(), connection))
{
connection.Open();
command.Parameters.Add(new SqlParameter("@clientid", clientid));
command.Notification = null;
SqlDependency.Start(connString);
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler((s, e) => dependency_OnChange(s, e, dependency, clientid));
dependency.OnChange -= new OnChangeEventHandler((s, e) => dependency_OnChange(s, e, dependency, clientid));
var reader = command.ExecuteReader();
connection.Close();
}
}
dependency_OnChangeイベント
public void dependency_OnChange(object sender, SqlNotificationEventArgs e, SqlDependency dependency, Guid clientid)
{
if (e.Type == SqlNotificationType.Change)
{
//subscribe function again
dependency_Update(clientid);
}
}
-
いずれかが、そのためのソリューションを持つことができ
、私を助けてください、私は感謝
あなたの問題を明確にすることはできますか? "次回購読中に購読を停止しない"ということはあまり明確ではありません。あなたが期待していること、何がうまくいかないのか? – Evk
@Evkあなたの応答のおかげで、私はちょうど – adnan