All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
开发某项目用到的全部50个Sql语句_[SQL Server教程]
ASP.Net基础学习,HTML控件,简单介绍_[Asp.Net教程]
C#.net操作Word文档——以Office,2007为例_[Asp.Net教程]
ajax和asp.net的配置文件_[Asp.Net教程]
Delphi组件的优势
ASP.NET2.0数据操作之创建数据访问层(2)_[Asp.Net教程]
关闭按钮点击事件的捕捉_[Asp.Net教程]
C#应用:从模拟字符串型的枚举说起_.net资料_编程技术
Linux系统上把PHP编译进Apache静态内核_php资料_编程技术
VC++大数据量绘图时无闪烁刷屏技术实现_[Asp.Net教程]
Reading number is top 10 pictures
9.3阅兵全景图4-陸海空现代化兵种方阵梯队
锄禾日了几个人?
俞敏洪在清华终于说了实话
Ashlynn Brooke a group sexy photo4
The money of more than 100 countries and regions14
毕姥爷事件,告诉你6条真理
西班牙山村小景4
29 the belle stars after bath figure1
美丽的桂林风光1
男人巳快沦落成动物了
Download software ranking
Unix video tutorial2
Sora aoi, the nurse, uniform ,nursing assistant
Tram sex maniac 2 (H) rar bag19
Popkart Cracked versions Mobile phone games
小黑猫大战两米大花蛇
Desire a peach blossom
Tram sex maniac 2 (H) rar bag2
matrix3
网络管理员第三版
C语言教程TXT
delv published in(发表于) 2014/1/8 7:00:09 Edit(编辑)
.NET,2.0,SqlDependency快速上手指南_[Asp.Net教程]

.NET,2.0,SqlDependency快速上手指南_[Asp.Net教程]

.NET 2.0 SqlDependency快速上手指南_[Asp.Net教程]

本文以SQL Server 2005上实现为准,SQL Server 2000因为实现机制不同,请查阅相关资料。

  步骤一:在SQL Server 2005上执行ALTER DATABASE SET ENABLE_BROKER;语句让相应的数据库启用监听服务,以便支持SqlDependency特性。

  这条语句最好在数据库未执行任何事务的情况下执行。

  步骤二:调用SqlDependency.Start(String strConnectionString)方法,在应用程序端启用依赖监听器。

  该方法的参数为一个数据库的连接字符串,该数据库必须已经执行过步骤一的操作。

  对于同一连接字符串,若已经执行过该语句,再次执行不会发生任何异常,但返回值会为False.

  如果是在Web程序中使用,建议可以将该语句放在Application_Start事件中执行。

  监听是基于数据库的,而依赖才可以基于表或者查询。

  步骤三:该步骤分别有两种不同的做法。该阶段必须注意步骤。

  方法A:建立连接对象,再创建一个SqlCommand实例,创建SqlCacheDependency实例,在这步之后再调用Command对象来获取数据(这个顺序很重要)。之后调用Cache的Insert语句建立一个依赖于一个具体查询数据集的Cache项。


SqlConnection conn = new SqlConnection(strConnection);
SqlCommand command = new SqlCommand(strCommandText, conn);
SqlCacheDependency dependency = new SqlCacheDependency(command);

// 注册方法到委托,该委托是
CacheItemRemovedCallback onRemove = new CacheItemRemovedCallback(RemovedCallback);

// 新增或修改一条缓存记录
Cache.Insert(strCacheKey, objAppCache, dependency, absoluteExpiration, slidingExpiration, CacheItemPriority.Default, onRemove);

  方法B:建立连接对象,再创建一个SqlCommand实例,最后创建SqlDependency实例。定义SqlDependency的委托OnChange,当数据发生改变时做出相应的处理(比如清除Cache)。


SqlConnection conn = new SqlConnection(strConnection);
SqlCommand command = new SqlCommand(strCommandText, conn);
SqlCacheDependency dependency = new SqlCacheDependency(command);
dependency.OnChange += new OnChangeEventHandler(Dependency_OnChange);

  注意事项:

  不知道是不是还存在BUG,我在项目开发中遇到一些奇怪的现象。同样的代码,在有的机器上运行则能捕捉到变化,有的则完全没反应;也有时会出现Cache刚建立就反复发生依赖改变的事件。偶尔Cache还会数据发生变化却不引发事件。

  但从最终项目实施的情况看,似乎都只是某些机器环境造成的不确定因素?这个无法确定。不过起码数据库端是否正常启用,可以通过SQL Server Profiler来查看监视。
来源:博客园





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.