PDA

View Full Version : کار نکردن SqlDependency برای یکی از دیتابیسها



hamid_hr
شنبه 15 آذر 1393, 12:07 عصر
سلام
برا استفاده از SqlDependency ابتدا این رو تو sql server اجرا کردم برا دیتابیس خودم

ALTER DATABASE MYDB SET enable_Broker


حالا تو سی شارپ از این کدها استفاده کردم




private bool DoesUserHavePermission()
{
try
{
SqlClientPermission clientPermission = new SqlClientPermission(System.Security.Permissions.Pe rmissionState.Unrestricted);
clientPermission.Demand();
return true;
}
catch
{
return false;
}
}


private void GetNames()
{
if (!DoesUserHavePermission())
return;


SqlDependency.Stop(scon);
bool l = SqlDependency.Start(scon);
textBox1.Text = l.ToString();
using (SqlConnection cn = new SqlConnection(scon))
{
using (SqlCommand cmd = cn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select ID_City from dbo.City";
cmd.Notification = null;


SqlDependency dep = new SqlDependency(cmd);
dep.OnChange += new OnChangeEventHandler(dep_OnChange);


cn.Open();


dgvPass.Rows.Clear();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
dgvPass.Rows.Add(dr[0].ToString());
}
}
}
}
}


void dep_OnChange(object sender, SqlNotificationEventArgs e)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new MethodInvoker(GetNames));
}
else
{
GetNames();
}
SqlDependency dep = sender as SqlDependency;
dep.OnChange -= new OnChangeEventHandler(dep_OnChange);
}



مشکل من اینجاس چرا این کدها برا یه دیتابیسم جواب نمیده ولی برا یه دیتابیس tmp که ساختم و تست کردم جواب میده؟