好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET數據庫緩存依賴實例分析

ASP.NET數據庫緩存依賴實例分析

熱門標簽:電銷語音機器人型號參數 征途美甲店地圖標注 400電話如何申請取消 騰訊地圖標注手機 柳州電銷機器人公司 太原400電話上門辦理 百度地圖怎樣做地圖標注 昆明語音電銷機器人價格 浦發電話機器人提醒還款

本文實例講述了ASP.NET數據庫緩存依賴,分享給大家供大家參考。具體如下:

一般在ASP.NET中,Cache類最酷的特點是它能根據各種依賴來良好的控制自己的行為。以文件為基礎的依賴是最有用的,文件依賴項是通過使用 Cache.Insert 并提供引用文件的 CacheDependency 對象添加的

復制代碼 代碼如下:
Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));

但是當我們想讓緩存根據數據庫中表的變化而失效并重建該緩存的時候,應該怎么做呢 – 這種情景在很多應用程序中都存在。Asp.net沒有為監視數據庫表的變化提供內在的直接緩存支持。利用SQL Server的不常用的系統存儲過程sp_makewebtask ,是可以達到這個目的的,這個存儲過程本來是用作從查詢中生成web頁面的,但是我們只要稍作修改- 在觸發器中使用它,我們就可以取得一個合理有效的途徑,當數據庫某張表的記錄被更新,刪除或者修改時來修改某個特定的文件,這樣會使在CacheDependency實例中的文件監視進程偵測到文件的變化,從而使緩存失效。事實上,因為CacheDependency 類工作在UNC文件協議上,我們可以在整個Web Farm上部署這個解決方案,Web Farm上每臺機器上的應用程序副本都會通過UNC文件路徑來監視WebFarm中某臺單個機器上的同一個文件

廢話少說,讓我們創建一個簡單的web應用程序,來演示它是如果工作的。首先,我們將會使用我們SQL Server中都信賴的Northwind范例數據庫。創建一個簡單的DataGrid來顯示Employees表中的記錄. 我們要做的第一件事情就是創建觸發器。

復制代碼 代碼如下:
CREATE TRIGGER WriteCacheDepFile ON [dbo].[Employees]
FOR INSERT, UPDATE, DELETE
AS
EXEC sp_makewebtask '\\peter\C$\Cache\mycache.txt', 'SELECT top 1 FirstName FROM employees'

以上存儲過程就是簡單的告訴SQL Server,如果Employee表發生任何變動,就根據一個簡單的查詢來更新”mycache.txt”文件,有這個簡單的查詢語句其實足夠了,只要它是一個有效的T-SQL語句,SQL Server會很樂意的去更新那個文件。

接下來,我們需要創建一個目錄,并設為共享。你可能要更新該文件的訪問權限,以使它可以被寫入,注意,我這里使用的是管理員共享”C$”.另外,你還需要創建一個空的文本文件,"mycache.txt".

好,現在可以創建我們的應用程序了。首先,在web.config文件中輸入依賴文件名稱,這樣做可以使我們在修改依賴文件的時候不需要重新部署應用程序。

在web.config文件的根部,添加appSettings配置節:

復制代碼 代碼如下:
/system.web>
appSettings>
!—緩存依賴文件路徑 -->
add key="dependencyFile" value="\\peter\Cache\mycache.txt" />
/appSettings>
/configuration>

現在,讓我們在Global類中建立緩存機制,這樣我們不需要在任何頁面中編寫特定的代碼

復制代碼 代碼如下:
public class Global : System.Web.HttpApplication
{
Cache _cache =null;
public static bool blnReflash = false;
public const string ConnStr = "server=localhost;database=Northwind;uid=sa;pwd=";
public const string strSQL = "SELECT EmployeeID, lastname, firstname FROM Employees";
protected void Application_Start(Object sender, EventArgs e)
{
_cache = Context.Cache;
RefreshCahe(null,null,0);
}
protected void Session_Start(Object sender, EventArgs e)
{
if(HttpContext.Current.Cache["Employees"]==null)
RefreshCache(null,null,0);
}
static void RefreshCache(string key,object item,CacheItemRemoveReason reason)
{
SqlDataAdapter adapter = new SqlDataAdapter(strSQL,ConnStr);
DataSet ds = new DataSet();
adapter.Fill(ds,"Employees");
CacheItemRemovedCallback onRemove = new CacheItemRemovedCallback(RefreshCache);
}

希望本文所述對大家的asp.net程序設計有所幫助。

您可能感興趣的文章:
  • C#和asp.net中鏈接數據庫中參數的幾種傳遞方法實例代碼
  • ASP.NET 鏈接 Access 數據庫路徑問題最終解決方案
  • ASP.NET oledb連接Access數據庫的方法
  • ASP.NET連接sql2008數據庫的實現代碼
  • asp.net實現access數據庫分頁的方法
  • ASP.NET連接MySql數據庫的2個方法及示例
  • asp.net得到本機數據庫實例的兩種方法代碼
  • ASP.NET列出數據庫活躍鏈接的方法

標簽:陽泉 新疆 天門 德陽 白山 蘭州 江蘇 張家界

巨人網絡通訊聲明:本文標題《ASP.NET數據庫緩存依賴實例分析》,本文關鍵詞  ASP.NET,數據庫,緩存,依賴,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET數據庫緩存依賴實例分析》相關的同類信息!
  • 本頁收集關于ASP.NET數據庫緩存依賴實例分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产高清www免费视频| 69日影院| 日本免费久久| 久久青草免费97线频观| 自己安慰自己的视频教程| 秘密教学84这次换我教你了| 警察h文| 国产特级| 美女让我的她地私人地方| 精品人妻人人爽久久爽| 进进出出小嫩核| 羞羞漫画喷水漫画yy视| 亚洲精品秘?一区二区三区白峰| 成人欧美一区二区三区黑人免费 | 日韩大乳视频中文字幕| 国产精品va在线观看| 国产99re在线观看只有精品| 黄色大片一级| 张柏芝打开双腿好爽艳照| 大乳喷奶水榨乳在线日本| 伦理片一区| 把女人的嗷嗷叫视频| 办公室H荡乳欲伦交换小喜| 胁迫美腿女教师小说雨夜| 色小妞视频| 久久久久亚洲国产| 约会大作战第四季无删减| 国语对白一级毛片| 免费无码又爽又刺激片软件| 国产人伦视频在线观看| 成人亚洲欧美日韩中文字幕| 久久99蜜桔精品久久久久| 韩漫免费网站成人漫画www| 欧产?日产?国产精品视频| 又大又粗又长又硬又爽不快| 色哟哟在线观看| 巜少妇4激情婬乱A片| 午夜精品一区二区三区在线视频 | 你是我的女人1免费观看| 在线免费污视频| 国产20岁美女一级毛片|