码迷,mamicode.com
首页 > 数据库 > 详细

使用SqlDependency实时监听SQL server数据库变化并执行事件

时间:2018-03-16 18:39:24      阅读:1175      评论:0      收藏:0      [点我收藏+]

标签:server设置   连接   onchange   text   namespace   ipad   write   实时   console   

sql server设置:ALTER DATABASE <DatabaseName> SET ENABLE_BROKER;语句让相应的数据库启用监听服务,以便支持SqlDependency特性

 

using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private static string conn = "数据库连接语句";
static SqlDependency dependency;

private void Form1_Load(object sender, EventArgs e)
{
//string sql = "SELECT u_ipaddress FROM WPS_User_M";
//DataTable dt = SqlHelper.Query(sql).Tables[0];
//dataGridView1.DataSource = dt;

//Start和Stop方法
SqlDependency.Start(conn);
Update(conn);
}

private static void Update(string conn)
{
using (
SqlConnection connection =
new SqlConnection(conn))
{
//此处 要注意 不能使用* 表名要加[dbo] 否则会出现一直调用执行 OnChange
string sql = "SELECT u_ipaddress FROM dbo.WPS_User_M";

using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
command.CommandType = CommandType.Text;
dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
//必须要执行一下command
command.ExecuteNonQuery();
Console.WriteLine(dependency.HasChanges);
}
}
}
private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
Console.WriteLine("onchange方法中:" + dependency.HasChanges);
Console.WriteLine("数据库数据发生变化" + DateTime.Now);
//这里要再次调用
Update(conn);
}
}
}

使用SqlDependency实时监听SQL server数据库变化并执行事件

标签:server设置   连接   onchange   text   namespace   ipad   write   实时   console   

原文地址:https://www.cnblogs.com/Mzg121584668/p/8583581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!