2 lichubo lichubo 于 2016.04.08 09:54 提问

sqldependency 无法触发OnChange时间 8C

class Program
{
private static string _connStr;

    static void Main(string[] args)
    {
        _connStr = "Data Source=.;user ID=sa;Pwd=123456;Database=A;";
        SqlDependency.Start(_connStr);  
        UpdateGrid();

        Console.Read();
    }


    private static void UpdateGrid()
    {
        using (SqlConnection connection = new SqlConnection(_connStr))
        {
            using (SqlCommand command = new SqlCommand("select ID,UserID,[Message] From [dbo].[aa]", connection))
            {
                command.CommandType = CommandType.Text;
                connection.Open();
                SqlDependency dependency = new SqlDependency(command);
                dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);

                SqlDataReader sdr = command.ExecuteReader();
                Console.WriteLine();
                while (sdr.Read())
                {
                    Console.WriteLine("Id:{0}\tUserId:{1}\tMessage:{2}", sdr["ID"].ToString(), sdr["UserId"].ToString(), sdr["Message"].ToString());
                }
                sdr.Close();
            }
        }
    }


    private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
    {
        UpdateGrid();
    }
            发现在数据库A中能触发事件,在库B中无法触发事件
            Select  DATABASEpRoPERTYEX('a','IsBrokerEnabled')//1

Select DATABASEpRoPERTYEX('B','IsBrokerEnabled')//1

1个回答

caozhy
caozhy   Ds   Rxr 2016.04.08 15:14
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SqlDependency执行复杂SQL语句
SqlDependency执行复杂SQL语句的方法
sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的.
sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. 快速上手可参见园友的下列文章 http://www.cnblogs.com/xrinehart/archive/2006/07/27/461106.html .NET 2.0 SqlDepen
监视数据库变化,线程(SqlDependency学习笔记 )
监视数据库变化,线程(SqlDependency学习笔记 ) 标签: 数据库sqlserverstatistics浏览器sqllibrary 2010-04-18 21:08 3914人阅读 评论(0) 收藏 举报  分类:   SQL Server(47)  sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDep
使用SqlDependency时提示当前数据库未启用Service broker
解决办法:ALTER DATABASE 数据库名称 SET NEW_BROKER WITH ROLLBACK IMMEDIATE; ALTER DATABASE 数据库名称 SET ENABLE_BROKER;如图,就OK了。
一个input域已经写了onchange时间但是动态赋值的时候并没有出发时间需要手动调用
 xxx.fireEvent('onchange') javascript中手动onchange事件触发 触发onchange事件的问题,并不是值一旦更改就会触发onchange事件。 对于onBlur和onFocus可以直接调用object.Blur()和object.Focus(),但javascript中没有object.Change 事件。 ob
SqlServer通知与SqlDependency类使用示例
整个程序如下所示:感觉SqlDependcy有点怪,不是很清楚其设计原理。 class Program{ private static SqlConnection con=null; private static SqlCommand com=null; static void Main(string[] args) { s
SqlDependency .NET库可以自动检测更新
SqlDependency可用于选择更改而不执行查询,以查看是否存在来自数据库的更新,WHERE CLAUSE也可用于缩小范围,将其从SQL Server推送到SQLDependency的方式,.NET库,SQL Server Broker服务发送更新到SQLDependency。 介绍 电子邮件发件人实用程序是一个.NET应用程序,描述了更好地使用SQLDependency与XM
ie下onchange事件触发不到
在项目中用到checkbox时,想实现checkbox选中和不选中时触发事件,绑定了onchange事件,在火狐下当值改变时,会触发这个事件,但是在ie下却不会,是在失去焦点后,才会触发这个事件,在丢失焦点时才触发,那其实就基本等同于onblur事件了。于是上网找了一下其他的时间,最后得出的结论是,如果还要用onchange时间,那就根据浏览器类型判断 ,如果是ie则绑定onpropertycha
关于WdatePicker控件的onchange事件如何使用————2017/8/5
在使用WdatePicker控件的时候,想写一个联动的查询,可以写上input的onchange事件后发现没有反应,后面发现原因是因为WdatePicker控件的内部方法重写了onchange事件,所以只能开始寻找其它的方法! 首先我想到的第一个办法是onblur事件(焦点离开时触发),它确实实现了联动的效果,但是通过调试之后发现因为是焦点离开就会触发,导致取不到第一手选取的值,所以这个方法就被
input输入框file类型选择同样输入框第二次不触发onchange事件的解决办法
网上大部分说法是因为选择一次后onchange事件没有绑定到input标签上,解决办法是拷贝一份input标签的副本,每次选择后对原input标签进行替换.后来发现只需要在选择一次后将input标签的value属性置为空即可,即$(‘#input’).val(”),简单粗暴有效