文档章节

sqlDependency监控数据库数据变化,自动通知

深圳大道
 深圳大道
发布于 2016/12/29 15:33
字数 300
阅读 5
收藏 0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace Sample2
{
    class Program
    {
        private static string _connStr;

        static void Main(string[] args)
        {
            _connStr = "Data Source=localhost;User Id=sa;Password=xxx;Database=xxx;Pooling=true;Max Pool Size=600;Min Pool Size=0;";
            SqlDependency.Start(_connStr);//传入连接字符串,启动基于数据库的监听
            UpdateGrid();
            Console.Read();
        }

        private static void UpdateGrid()
        {
            using (SqlConnection connection = new SqlConnection(_connStr))
            {
                connection.Open();
                //依赖是基于某一张表的,而且查询语句只能是简单查询语句,不能带top或*,同时必须指定所有者,即类似[dbo].[]
                using (SqlCommand command = new SqlCommand("select D_Id,D_Name,D_Password,D_Else,D_Amount From [dbo].[TestTable]", connection))
                {
                    
                    command.CommandType = CommandType.Text;
                    SqlDependency dependency = new SqlDependency(command);
                    dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
                    using (SqlDataReader sdr = command.ExecuteReader())
                    {
                        Console.WriteLine();
                        while (sdr.Read())
                        {
                            Console.WriteLine("{0}---{1}---{2}---{3}---{4}", sdr["D_Id"].ToString(),
                                sdr["D_Name"].ToString(), sdr["D_Password"].ToString(), sdr["D_Else"].ToString(), sdr["D_Amount"].ToString());
                        }
                        sdr.Close();
                    }
                }
            }
        }

        private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
        {
            UpdateGrid();
        }
    }
}
use master
ALTER DATABASE WINE_CLOUD set ENABLE_BROKER

/*
想启用Broker时,出现以下错误:
无法启用数据库 "db2" 中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。
解决办法:
use master
alter database db2 set NEW_BROKER

然后再运行
use master
ALTER DATABASE db2 set ENABLE_BROKER
*/
--验证是否能启用
go
Select DATABASEPROPERTYEX('WINE_CLOUD','IsBrokerEnabled')

--修改数据库使用者(至关重要)
exec sp_changedbowner @loginame = 'sa'

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/53419901

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
使用SignalR和SQLTableDependency跟踪数据库中记录的变动

SqlTableDependency是一个组件用来接收数据库的通知,包含在数据表上该记录的值的Inserted、Deleted或者Update操作. 备注:原文提供示例代码下载,但是js写的有些问题(没有更新数据),可以...

左转右转
02/20
0
0
SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]

一、SQL SERVER 7.0/2000和SQL SERVER 2005的简介及比较 1.1 SQL SERVER 7.0/2000 SQL SERVER 7.0/2000没有提供内置的支持数据缓存依赖的功能,所以只能通过采用添加特定数据库表、触发器等方...

walb呀
2017/12/07
0
0
SQL server数据缓存依赖

SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式。 1 轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持 主要包含以下几步: 1.1 使用aspnetregsql命令行或...

随智阔
2015/12/21
23
0
有谁用过.net的SqlDependency这个类吗

class Program { private static string _connStr; static int i = 0; static int maxid = 0; static void Main(string[] args) { _connStr = "xxxx"; SqlDependency.Start(_connStr);//传入......

ulfl
2010/12/06
999
1
可升级的 ASP.NET Clustered Session State 解决方案NCache

NCache 是一个基于 .NET 应用程序关键任务的集群存储器对象缓存。 NCache 也能对运行在服务器的 .NET 应用程序提供一个可升级的 ASP.NET Clustered Session State 解决方案。分布式缓存和会其...

baobiaokongjian
2014/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java的线程同步和并发问题示例

并发问题 多线程是一个非常强大的工具,它使我们能够更好地利用系统的资源,但我们需要在读取和写入多个线程共享的数据时特别小心。 当多个线程尝试同时读取和写入共享数据时,会出现两种类型...

hiuh
今天
3
0
Spring Boot 常用注解说明

实体类 @Entity (实体类注解) @Table(可指定表名) @Data(可缺省get/set) @Id (指定属性主键) @GeneratedValue(指定主键生成规则)

兜兜毛毛
今天
3
0
局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
今天
2
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
4
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部