SqlDependency 一段时间后不监听数据库了

zhangle5611354 2012-11-12 05:03:24
SqlDependency 刚刚开始能同步到数据库的数据,让程序跑一段时间dependency_OnChange就不激活了,服务器的数据库一直在变化! 开始跑了2个多小时都正常!


conn = new System.Data.SqlClient.SqlConnection(SqlHelper.ConStrUrl);
command = conn.CreateCommand();
command.CommandText = "SELECT [serialNumber],[address],[description] FROM [dbo].[sq_scan_history_table] where rtuid='" + rtuid + "'";


SqlDependency.Start(SqlHelper.ConStrUrl); //启动

GetData();//获取数据

private void GetData()
{
command.Notification = null;//清除
SqlDependency dependency = new SqlDependency(command); //设置通知
dependency.OnChange += new OnChangeEventHandler(sqlDependency_OnChange); //通知事件

using (SqlDataAdapter adapter = new SqlDataAdapter(command)) //查询数据
{
System.Data.DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}

}

/// <summary>
/// 通知事件,数据库有新数据,激活此事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void sqlDependency_OnChange(object sender, SqlNotificationEventArgs e)
{
//因为是子线程,需要用invoke方法更新ui
if (this.InvokeRequired)
{
this.Invoke(new OnChangeEventHandler(sqlDependency_OnChange), new object[] { sender, e });
}
else
{
SqlDependency dependency = (SqlDependency)sender;
dependency.OnChange -= sqlDependency_OnChange;
//通知之后,当前dependency失效,需要重新getdata并且设置通知
GetData();
}
}
...全文
156 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangle5611354 2012-11-12
  • 打赏
  • 举报
回复
求各位大神帮助

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧