国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET 2.0 SqlDependency快速上手指南

2024-07-21 02:31:46
字體:
來源:轉載
供稿:網友

此文以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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 志丹县| 五大连池市| 仙游县| 东辽县| 和田市| 舞阳县| 永和县| 察雅县| 韩城市| 宜兰市| 珲春市| 满洲里市| 苍梧县| 西昌市| 海城市| 孟津县| 云龙县| 且末县| 新巴尔虎左旗| 桦南县| 陈巴尔虎旗| 三台县| 弥勒县| 泰和县| 九江市| 叶城县| 东安县| 商南县| 和顺县| 博罗县| 林口县| 南江县| 隆安县| 丰原市| 安多县| 隆回县| 汉沽区| 泰州市| 启东市| 高唐县| 仁寿县|