欢迎光临
我们一直在努力

.net 2.0 sqldependency快速上手指南_数据库技巧

建站超值云服务器,限时71元/月

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


 


       步骤一:在SQL Server 2005上执行ALTER DATABASE <DatabaseName> 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来查看监视。


http://www.cnblogs.com/Xrinehart/archive/2006/07/27/461106.html

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » .net 2.0 sqldependency快速上手指南_数据库技巧
分享到: 更多 (0)