SqlDependency类使用

问题描述

usingSystem;usingSystem.Configuration;usingSystem.Data;usingSystem.Data.SqlClient;namespaceSqlDependencyTest{classProgram{privatestaticstring_connStr;staticvoidMain(string[]args){_connStr=ConfigurationManager.ConnectionStrings["ConnStr"].ToString();SqlDependency.Start(_connStr);//傳入連接字元串,啟動基於資料庫的監聽UpdateGrid();Console.Read();}privatestaticvoidUpdateGrid(){using(SqlConnectionconnection=newSqlConnection(_connStr)){//依賴是基於某一張表的,而且查詢語句只能是簡單查詢語句,不能帶top或*,同時必須指定所有者,即類似[dbo].[]using(SqlCommandcommand=newSqlCommand("selectID,UserID,[Message]From[dbo].[Messages]",connection)){command.CommandType=CommandType.Text;connection.Open();SqlDependencydependency=newSqlDependency(command);dependency.OnChange+=newOnChangeEventHandler(dependency_OnChange);SqlDataReadersdr=command.ExecuteReader();Console.WriteLine();while(sdr.Read()){Console.WriteLine("Id:{0}tUserId:{1}tMessage:{2}",sdr["ID"].ToString(),sdr["UserId"].ToString(),sdr["Message"].ToString());}sdr.Close();}}}privatestaticvoiddependency_OnChange(objectsender,SqlNotificationEventArgse){UpdateGrid();}}}这是网上的代码,本人测试,数据表没有任何操作时,事件触发是死循环,但MSDN上介绍说,只有当数据表有改变时才会触发事件,初看SqlDependency,请指教

解决方案

时间: 2024-09-08 12:57:00

SqlDependency类使用的相关文章

System.Web.Caching.Cache类 缓存 各种缓存依赖

原文:System.Web.Caching.Cache类 缓存 各种缓存依赖 Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例. 一.属性 属性 说明 Count 获取存储在缓存中的项数. EffectivePercentagePhysicalMemoryLimit 获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物理内存百分比. EffectivePrivateBytesLimit 获

SqlDependency学习笔记

sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. 快速上手可参见园友的下列文章 http://www.cnblogs.com/xrinehart/archive/2006/07/27/461106.html .NET 2.0 SqlDependency快速上手指南http://www.cnblogs.com/gesenkof99/archive/2

剖析SQL Server 2005查询通知之基础篇

在本系列文章中,我们将深入探讨如何把.NET 2.0和SQL Server 2005的查询通知特征联合起来,以便通知应用程序何时关键数据发生变化进而达到消除反复查询数据库的目的. 一.引言 数据库应用程序的典型问题之一是更新陈旧的数据. 设想有一个典型的显示产品及其分类的电子商务网站.一个供应商的产品列表很可能并不经常发生变化,而其分类列表甚至更不会频繁更改.然而,在用户每次浏览该网站时,必须从数据库中反复查询这些列表.这显然是一种典型的低效资源利用,开发者和架构师都在绞尽脑汁想办法以减少这种浪

ASP.NET 2.0中的页面输出缓存

asp.net|缓存|页面 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出

ADO.NET 2.0中的查询通知

概述 任何有实际价值的关系数据库应用程序都离不开一大堆的查询表.如果您是开发图形用户界面的专家,那么您知道这些查询表将用于加工下拉列表框中的列表.我将查询表分成两种:只读表和可改写只读表.二者的区别在于什么会导致表的改变.我认为如果需要召开员工会议或者用户会议才可以修改表的内容,那么表就是只读的.一个好的例子就是公司的产品类别表.表的内容将不会改变直到公司研发并向市场投放了新产品,或者公司进行了重组.可改写的只读表是内容相对固定的列表,但可以被最终用户修改,通常使用组合框而不用下拉列表框来展现.

ASP.Net缓存总结及分析 分享_实用技巧

1.页面缓存        要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可.         <%@ OutputCache CacheProfile=" " NoStore="True | False" Duration="#ofseconds" Shared="True | False" Location="Any | Client | Downstream | Server |

ASP.NET 2.0中的页面输出缓存_实用技巧

静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出缓存可以使用以下两种方式:一

.net中Petshop4.0 缓存设计学习教程

Asp.net 2.0新增的缓存管理:  CacheDependency跟踪缓存依赖项,缓存依赖项可以是应用程序的 Cache 中的文件.目录或与其他对象的键.   SqlCacheDependency类在所有受支持的 SQL Server 版本 (7.0, 2000, 2005) 上监视特定的 SQL Server 数据库表,以便在该表发生更改时,自动从 Cache 中删除与该表关联的项. 数据库表发生更改时,将自动删除缓存项,并向 Cache 中添加新版本的项.在使用 SQL Server

那些意境情怀俱佳的咖啡类网页设计

  音乐可以穿越时光,而美食可以跨越国界,它们和好设计一样,都无需语言来赘述.在过去的几年中,那些设计优秀的餐馆.酒吧类网站开始抓住更多设计师的眼睛和吃货的胃,成了"唯有爱与美食不可辜负"的真实注脚. 新鲜精致的美食与优雅的环境无缝融合,搭配的字体和色彩让你的饥饿感止不住地翻涌起来,你的胃口和情绪会被这些精心设计的网站完全调动起来.优设曾经发过设计优异的美食和美酒类的网站,今天我们来看看这类网站的另外一个重要分支:咖啡类网页设计. 在美国,平均每个人每年会喝500~700杯咖啡,在中国