Xcalivorse
چهارشنبه 02 شهریور 1390, 14:56 عصر
با سلام. دوستان عزیز می خوام از کلاس SqlDependency استفاده کنم. چون نیاز دارم که اگر تغییری در جداولم اتفاق افتاد به صورت خودکار بفهمم. کدی که نوشتم اینه :
privatevoid Btn_Start_Click(object sender, EventArgs e)
{
String StrCon = @"Data Source=YAHYA\SQL2005;Initial Catalog=Test;USER ID=Sarmadi;PWD=1";
SqlConnection con = newSqlConnection(StrCon);
SqlCommand cmd = newSqlCommand("Select [Name],Number FROM dbo.Members", con);
// cmd.Notification = null;
SqlDependency s = newSqlDependency(cmd);
SqlDependency.Start(StrCon);
s.OnChange += newOnChangeEventHandler(MyOnChanged);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
// rdr.Close();
}
staticvoid MyOnChanged(object caller, SqlNotificationEventArgs e)
{
//to test place a break point here
//and change any data in the specified table
string msg = "Notified";
MessageBox.Show(msg);
}
اما وقتی که روی دکمه Start کلیک میکنم رویداد OnChange اتفاق میافته و MessageBox نمایش داده میشه و تمام. دیگه هر تغييري توی جدول Member میدم هیچ اتفاقی نمیافته. لطفا راهنمایی کنید.
با تشکر فراوان
privatevoid Btn_Start_Click(object sender, EventArgs e)
{
String StrCon = @"Data Source=YAHYA\SQL2005;Initial Catalog=Test;USER ID=Sarmadi;PWD=1";
SqlConnection con = newSqlConnection(StrCon);
SqlCommand cmd = newSqlCommand("Select [Name],Number FROM dbo.Members", con);
// cmd.Notification = null;
SqlDependency s = newSqlDependency(cmd);
SqlDependency.Start(StrCon);
s.OnChange += newOnChangeEventHandler(MyOnChanged);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
// rdr.Close();
}
staticvoid MyOnChanged(object caller, SqlNotificationEventArgs e)
{
//to test place a break point here
//and change any data in the specified table
string msg = "Notified";
MessageBox.Show(msg);
}
اما وقتی که روی دکمه Start کلیک میکنم رویداد OnChange اتفاق میافته و MessageBox نمایش داده میشه و تمام. دیگه هر تغييري توی جدول Member میدم هیچ اتفاقی نمیافته. لطفا راهنمایی کنید.
با تشکر فراوان