1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Configuration;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9.  
  10. namespace Sample2
  11. {
  12. class Program
  13. {
  14. private static string _connStr;
  15.  
  16. static void Main(string[] args)
  17. {
  18. _connStr = "Data Source=localhost;User Id=sa;Password=xxx;Database=xxx;Pooling=true;Max Pool Size=600;Min Pool Size=0;";
  19. SqlDependency.Start(_connStr);//传入连接字符串,启动基于数据库的监听
  20. UpdateGrid();
  21. Console.Read();
  22. }
  23.  
  24. private static void UpdateGrid()
  25. {
  26. using (SqlConnection connection = new SqlConnection(_connStr))
  27. {
  28. connection.Open();
  29. //依赖是基于某一张表的,而且查询语句只能是简单查询语句,不能带top或*,同时必须指定所有者,即类似[dbo].[]
  30. using (SqlCommand command = new SqlCommand("select D_Id,D_Name,D_Password,D_Else,D_Amount From [dbo].[TestTable]", connection))
  31. {
  32.  
  33. command.CommandType = CommandType.Text;
  34. SqlDependency dependency = new SqlDependency(command);
  35. dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
  36. using (SqlDataReader sdr = command.ExecuteReader())
  37. {
  38. Console.WriteLine();
  39. while (sdr.Read())
  40. {
  41. Console.WriteLine("{0}---{1}---{2}---{3}---{4}", sdr["D_Id"].ToString(),
  42. sdr["D_Name"].ToString(), sdr["D_Password"].ToString(), sdr["D_Else"].ToString(), sdr["D_Amount"].ToString());
  43. }
  44. sdr.Close();
  45. }
  46. }
  47. }
  48. }
  49.  
  50. private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
  51. {
  52. UpdateGrid();
  53. }
  54. }
  55. }
  1. use master
  2. ALTER DATABASE WINE_CLOUD set ENABLE_BROKER
  3.  
  4. /*
  5. 想启用Broker时,出现以下错误:
  6. 无法启用数据库 "db2" 中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。
  7. 解决办法:
  8. use master
  9. alter database db2 set NEW_BROKER
  10.  
  11. 然后再运行
  12. use master
  13. ALTER DATABASE db2 set ENABLE_BROKER
  14. */
  15. --验证是否能启用
  16. go
  17. Select DATABASEPROPERTYEX('WINE_CLOUD','IsBrokerEnabled')
  18.  
  19. --修改数据库使用者(至关重要)
  20. exec sp_changedbowner @loginame = 'sa'

sqlDependency监控数据库数据变化,自动通知的更多相关文章

  1. Canal的简单使用(监控数据库数据的变化)

    原文:https://www.cnblogs.com/java-spring/p/8930740.html canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据,用于实际工作中,比 ...

  2. WPF非轮询方式更新数据库变化SqlDependency(数据库修改前台自动更新)

    上一章节我们讲到wpf的柱状图组件,它包含了非轮询方式更新数据库变化SqlDependency的内容,但是没有详细解释,现在给大家一个比较简单的例子来说明这部分内容. 上一章节: WPF柱状图(支持数 ...

  3. 数据库数据对比自动生成sql

    1.故事背景 有一次迭代步入尾声,提交给用户测试,系统管理员在测试环境中初始了一些数据,然后在上线的时候系统管理员再去正式环境初始这一些数据,然而这次数据太多了,说了一次:”为什么要初始化两次?“ 你 ...

  4. JAVA整合FlinkCDC 监控数据库表变化

    版本至少jdk8 maven <!-- https://mvnrepository.com/artifact/com.alibaba.ververica/flink-connector-mysq ...

  5. 老技术记录-C#+SqlServer使用SqlDependency监听数据库表变化

    开发环境: .net / C# (.net core理论上也可以) 数据库:MS SQL Server 2005 以上 (我用的sqlserver2012) 功能:SqlDependency提供了一种 ...

  6. Android Studio 之 LiveData 的配合使用,底层数据变化,自动通知界面

    Android Studio 之 LiveData 的配合使用,底层数据变化,自动通知界面 viewModelWithLikeData.getLikeNumber().observe(this, ne ...

  7. 使用TheFolderSpy监控文件夹的变化-邮件通知

    一.概述 当我们的文档或者代码文件发布在公网.共享文件夹中,其他用户具备访问或修改的权限时,就存在文档被覆盖或删除的分享.另外一个典型的场景,发布在Web服务器上的网页文件,在网站版本不更新的时间,服 ...

  8. 动手实现 Redux(二):抽离 store 和监控数据变化

    上一节 的我们有了 appState 和 dispatch: let appState = { title: { text: 'React.js 小书', color: 'red', }, conte ...

  9. 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)

    原文:监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1) 如果你要同步不同数据库之间的数据,首先会想到的是数据库复制技术,但如果让你同步数据库的结构,你会想到什么呢? 下面 ...

随机推荐

  1. Linux修改文件permission属性

    列出文件属性 ls -al 修改文件属性为可读.可写 sudo chmod -c 777 <your file name>

  2. Rsync for windows

    说到电脑,我真是一屋子都是. 从房间到大厅,就已经有5台.这还没包括服务器. 虽然这5台电脑我最常用的也只是2~3台.其他的不是给朋友们来坐的时候打打游戏.就是给妈妈上网看看报纸. 不过我相信很多朋友 ...

  3. Spring mybatis源码篇章-XMLLanguageDriver解析sql包装为SqlSource

    前言:通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-MybatisDAO文件解析(二) 首先了解下sql mapper的动态sql语法 具体的动态sql的 ...

  4. 第二次作业:编写一个四则运算的"软件"

    - 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 需求分析: ●基本功能 ●实现100以内的加法 ●实现100以内 ...

  5. 201521123107 《Java程序设计》第9周学习总结

    第9周作业-异常 1.本周学习总结 2.书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什 ...

  6. 微信小程序wx.navigateTo层叠5次限制,特殊情况的建议

    小程序页面的实例使用栈的数据结构存储,栈内元素最多5个(换一种方式说,就是用户最多能点击5次返回),微信小程序能在栈中相对高层某个页面调用其他相对低层的页面实例的方法. 小程序三种页面跳转API 的区 ...

  7. 201521123049 《JAVA程序设计》 第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 public ...

  8. 201521123070 《JAVA程序设计》第7周学习总结

    1. 本章学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 Q1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码: pub ...

  9. 201521123076 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 创建线程方式: 定义Thread的子类,覆盖run(),之后创建实例.因为开销大,一般不用. 定义实现Run ...

  10. 201521123039 《java程序设计》第一周学习总结

    #1.本章学习总结 Java是面向对象的程序语言,它一切定义都是对象.我们所编写的Java程序经过编译后生成了*.class的文件,再经过JVM对*.class解释运行就可以得到Java程序,所以Ja ...