小编mj2*_*2k2的帖子

SQLDependency_OnChange-Event仅触发一次

我正在使用SQLDependency来通知我数据库是否有变化.程序启动后,它工作得很好.当我进行第一次更改时,事件会触发.Wohoo ......太好了.但如果我做了第二次更改,事件就不再发生了.我搜索了所有网络,但我没有发现任何有关此问题的信息.仅发现OnChange-Event在循环中触发的问题.谁能帮我?

这里有一小段代码:

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

        SqlDependency.Stop(con);
        SqlDependency.Start(con);

        using (SqlConnection cn = new SqlConnection(con))
        {
            using (SqlCommand cmd = cn.CreateCommand())
            {
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "SELECT Bla, Bla2, ..FROM dbo.[BLA3]"

                cmd.Notification = null;
                cmd.Dispose();

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

                cn.Open();

                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    state.Clear(); //In this Case "state" is a List<string>
                    while (dr.Read())
                    {
                        state.Add(dr.GetString(0) + "|" + dr.GetInt32(3));
                    }
                    dr.Dispose();
                    dr.Close();
                }                    
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的OnChange-Event看起来像这样:

private …
Run Code Online (Sandbox Code Playgroud)

c# wpf sqldependency

22
推荐指数
3
解决办法
7480
查看次数

标签 统计

c# ×1

sqldependency ×1

wpf ×1