wpf 轮询mysql数据库_WPF非轮询方式实时更新数据库变化SqlDependency
public partial class Page1 : Page
{
private static string connStr;
SqlDataReader sdr;
public Page1()
{
InitializeComponent();
connStr = 数据库连接字符串
SqlDependency.Start(connStr);//传入连接字符串,启动基于数据库的监听
UpdateUI();
}
private void UpdateUI()
{
using (SqlConnection connection = new SqlConnection(connStr))
{
//依赖是基于某一张表的,而且查询语句只能是简单查询语句,不能带top或*,同时必须指定所有者,即类似[dbo].[]
//获取要监控的数据内容,这里只监控一条数据
using (SqlCommand command = new SqlCommand("select ID,UserID,[Message] From [dbo].[Messages] where ID=2", connection))
{
command.CommandType = CommandType.Text;
connection.Open();
SqlDependency dependency = new SqlDependency(command);
//当后台数据库发生变化时,触发该事件
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
sdr = command.ExecuteReader();
while (sdr.Read())
{
//线程安全,使用Dispatch线程更新界面
DispatchUpdateUI(sdr);
}
sdr.Close();
}
}
}
private void DispatchUpdateUI(SqlDataReader sdr)
{
try
{
tbxUserID.Dispatcher.Invoke(new UpdatetbxUserDelegate(UpdatetbxUserIDAction));
tbxMessage.Dispatcher.Invoke(new UpdatetbxMessageDelegate(UpdatetbxMessageAction));
}
catch (Exception ex)
{
throw ex;
}
}
private delegate void UpdatetbxUserDelegate();
private delegate void UpdatetbxMessageDelegate();
private void UpdatetbxUserIDAction()
{
tbxUserID.Text = sdr["UserID"].ToString();
}
private void UpdatetbxMessageAction()
{
tbxMessage.Text = sdr["Message"].ToString();
}
private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
UpdateUI();
}
}
wpf 轮询mysql数据库_WPF非轮询方式实时更新数据库变化SqlDependency相关推荐
- php更新不了数据库,为什么我不能使用PHP编辑/更新数据库?
这是我的代码.在此代码中,当您使用PHP编辑和"更新"数据库中的数据时,它不会更改数据库或myphpadmin中的数据.看看下面的代码:为什么我不能使用PHP编辑/更新数据库? i ...
- 学习过程中遇到的一些电脑上的小BUG,非学习问题,实时更新
1.电脑桌面上有一个"关闭"字样的的小方框解决方法 电脑桌面上莫名出现有个"关闭"字样的小方框按钮,但无论怎么点击他都没有反应,而且会存在在各个页面上方 ,看着 ...
- go监听mysql事件更新,有没有一种方法可以“监听”数据库事件并实时更新页面?...
我正在寻找一种创建简单的HTML表的方法,该表可以在数据库更改事件发生时进行实时更新.特别是添加了新记录. 换句话说,将其视为执行人员仪表板.如果进行了销售并且在数据库中添加了新行(在本例中为MySQ ...
- TigerGraph:实时图数据库助力金融风控升级
作者:李晨.TigerGraph高级解决方案经理 随着互联网金融的发展,传统金融机构一边享受着金融科技带来的效率提升和服务边界的扩大,另一边黑产的攻击手段也在不断升级,金融机构遭遇的欺诈情况越来越复杂 ...
- 达梦数据库服务器与文件内数据,达梦数据库使用
达梦数据库使用 达梦数据库使用 达梦数据库安装及配置 前言 一.达梦数据库安装包的下载 二.达梦数据库安装步骤 安装前准备 安装DM数据库软件 创建数据库 三.达梦数据库的启动/停止 前言 本章讲解达 ...
- 解决Spring JPA自动更新数据库的问题
文章目录 一.背景介绍 二.Spring JPA相关介绍 2.1 JPA中Entity的各种状态 2.2 EntityManager自动update数据库的原因 2.3 关于自动更新的EntityMa ...
- 深入理解分布式技术 - 先更新数据库,还是先更新缓存
文章目录 Pre 数据不一致 更新缓存的方式 先更新数据库,再更新缓存 (数据库是新的,但缓存中数据是旧的) 先删缓存,再更新数据库 (并发操作下出现业务不一致) 先更新数据库,再删缓存 ( Cach ...
- 转载:LINQ to SQL更新数据库操作
翻译整理ScottGu的关于LINQ to SQL的Part 4: Updating our Database .该Post讲解了如何使用LINQ to SQL更新数据库,以及如何整合业务逻辑和自定义 ...
- 数据库优化几种常见方式
数据库优化几种常见方式 一.数据库编码规范 1)从 JDBC 编程的角度讲,用 PreparedStatement 一般来说比 Statement 性能高,因为在使用 时,SQL 语句被预编译并存储在 ...
最新文章
- 玩聚的Blog墙 VIII
- 深度学习的非主流应用
- envi与arcgis文件转换_ArcGIS、MapInfo、ENVI、MapGIS等矢量格式相互转换
- SQL SERVER性能优化综述(转载)
- 设计模式是什么鬼(模板方法)
- Spring 基础 编写基本的控制器(系列号3)
- ondestroy什么时候调用_JavaScript基础——你真的清楚JavaScript是什么吗?
- 获取mysql系统时间
- 分析SpinnerActivityTest中有关控件操作以及UI线程问题
- IE下检测泄露的全局变量
- ElasticSearch学习(四):可视化管理之Kibana
- Atitit需求文档模板大纲目录 attilax总结
- 软件工程设计概念与体系结构设计
- kuangbin14数论解析
- 微信小程序源码合集(免费)
- Informatic学习总结_day02
- 一路(16)相随,一起(17)前行
- unity 摄像机追随指定物体
- sealed java_sealed 关键字
- 2010中国互联网哈哈榜1:十大网络流行语
热门文章
- numpy 矩阵求逆_numpy 矩阵运算
- python的socket编程接收浏览器上传的文件_使用python套接字编程将文件发送到浏览器...
- expected at least 1 bean which qualifies as autowire candidate for this dependency
- linux 压缩权限,linux的基本操作(归档压缩,用户、权限管理,远程服务器构建和vi编辑器)...
- 中职计算机网络技术教学大纲,计算机网络技术课程教学大纲
- php相册上传和删除吗,php如何删除上传图片
- vue取div当前宽度_【前端大神面考面试官系列】入门Vue全家桶
- gamma校正_Log与Gamma校正视频
- java字符串定义_java字符串基本概念
- java初学试题_JAVA 适合初学者的试题?