• c# 实时监控数据库 SqlDependency


    http://blog.csdn.net/idays021/article/details/49661855

    class Program
    {
    private static string _connStr;

    static void Main(string[] args)
    {
    _connStr = ConfigurationManager.ConnectionStrings["plmConnectionString"].ToString();
    SqlDependency.Start(_connStr);//传入连接字符串,启动基于数据库的监听
    UpdateGrid();

    Console.Read();
    }

    private static void UpdateGrid()
    {
    using (SqlConnection connection = new SqlConnection(_connStr))
    {
    //依赖是基于某一张表的,而且查询语句只能是简单查询语句,不能带top或*,同时必须指定所有者,即类似[dbo].[],如果where条件存在datetime类型,就会导致一直触发onChange事件
    using (SqlCommand command = new SqlCommand("select id,machine,jobNo From [dbo].[plm_Issue]", 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} machine:{1} jobNo:{2}", sdr["id"].ToString(), sdr["machine"].ToString(),

    sdr["jobNo"].ToString());
    }
    sdr.Close();
    }
    }
    }


    private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
    {
    SqlDependency dependency = sender as SqlDependency;
    dependency.OnChange -= dependency_OnChange;
    if (e.Info != SqlNotificationInfo.Invalid)
    {
    UpdateGrid();//此处需重复注册<span style="font-family: Arial, Helvetica, sans-serif;">SqlDependency,每次注册只执行一次,SqlDependency.id可用用于验证注册唯一 编号
    }
    }
    }

    在数据库执行如下sql 语句

    1. ALTER DATABASE 数据库名称 SET NEW_BROKER WITH ROLLBACK IMMEDIATE;  
    2. ALTER DATABASE 数据库名称 SET ENABLE_BROKER; 
  • 相关阅读:
    串口调试助手的源码分析,子对话框部分
    vc 使用了SerialPort类的串口通信软件分析
    Web前端研发工程师编程能力飞升之路
    vc mscomm串口通信使用了CButtonST按钮类软件分析
    vc 串口精灵软件分析
    c#串口完全接收程序
    Windows Server 2003操作系统中禁用Internet Explorer增强的安全特性
    Window下查看进程端口号
    面向对象的设计原则(2)——依赖注入
    面向对象的设计原则(1)
  • 原文地址:https://www.cnblogs.com/w1-y2-q5/p/7080392.html
Copyright © 2020-2023  润新知