a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

深入分析緩存依賴中cachedependency對象及周邊小講

2020-01-24 03:14:41
字體:
來源:轉載
供稿:網友

最近正在學緩存依賴,現把一些學習資料整理如下:
緩存依賴主要提供以下功能:
1.SQL 緩存依賴項可用于應用程序緩存和頁輸出緩存。
2.可在 SQL Server 7.0 及更高版本中使用 SQL 緩存依賴項。
3.可以在網絡園(一臺服務器上存在多個處理器)或網絡場(多臺服務器運行同一應用程序)中使用 SQL 緩存依賴項。
4.與 SQL 緩存依賴項關聯的數據庫操作比較簡單,因此不會給服務器帶來很高的處理成本。

現在把與緩存依賴相關的對象集合如下,并對差異性進行了一定程度的分析……
緩存依賴主要由3個核心類來實現:CacheDependency、AggregateCacheDependency、SqlCacheDependency。CacheDependency 類是 AggregateCacheDependency 類和 SqlCacheDependency 類的父類。

CacheDependency跟蹤緩存依賴項,緩存依賴項可以是應用程序的 Cache 中的文件、目錄或與其他對象的鍵,可用于實現自定義緩存依賴。//對文件可起作用。

SqlCacheDependency類在所有受支持的 SQL Server 版本 (7.0, 2000, 2005) 上監視特定的 SQL Server 數據庫表,以便在該表發生更改時,自動從 Cache 中刪除與該表關聯的項。數據庫表發生更改時,將自動刪除緩存項,并向 Cache 中添加新版本的項。在使用 SQL Server 2005 數據庫時,SqlCacheDependency 類還支持與 System.Data.SqlClient.SqlDependency 類進行集成。使用 SQL Server 2005 的查詢通知機制來檢測使 SQL 查詢結果無效的數據更改。與 SQL 查詢關聯的任何緩存項都將從 System.Web.Caching.Cache 中移除。在使用 SQL Server 2005 時,可以使用 SqlCacheDependency 類向應用程序的 Cache 添加依賴于 SQL Server 數據庫表或 SQL 查詢的項。//對數據表的支持

AggregateCacheDependency類監視依賴項對象的集合,以便在任何依賴項對象更改時,該緩存項都會自動移除。數組中的對象可以是CacheDependency或者SqlCacheDependency對象、從 CacheDependency派生的自定義對象或這些對象的任意組合.

AggregateCacheDependency類與CacheDependency類的不同之處在于前者允許您將不同類型的多個依賴項與單個緩存項關聯。例如,如果您創建一個從 SQL Server 數據庫表和 XML 文件導入數據的頁,則可創建一個SqlCacheDependency對象來表示數據庫表的依賴項,以及一個CacheDependency來表XML 文件的依賴項。可創建 AggregateCacheDependency類的一個實例,將每個依賴項添加到該類中,而不是為每個依賴項調用 Cache.Insert 方法。然后,可使用單個Insert 調用使該頁依賴于 AggregateCacheDependency實例。

復制代碼 代碼如下:

其中,本章主要講述CacheDependency的用法。
CacheDependency有幾中重載,各作用如下。
//假設緩存的來源文件是當前目錄下的data.xml文件
//緩存依賴的文件路徑
    CacheDependency mydep = new CacheDependency("data.xml");
//緩存依賴的文件可以有多個
    CacheDependency mydep1=new CacheDependency(new string []{"data.xml","data1.xml"});
//檢查緩存依賴更改的依據時間
    CacheDependency mydep2 = new CacheDependency("data.xml", DateTime.Now);
//檢查多個依賴文件更改的依據時間
    CacheDependency mydep3 = new CacheDependency(new string[] { "data.xml", "data1.xml" }, DateTime.Now);
//檢查依賴多個文件,也依賴多個緩存鍵值
    CacheDependency mydep4 = new CacheDependency(new string[] { "data.xml", "data1.xml" },new string[] { "Category", "Category1" });
//關聯依賴,還可以依賴于另一個文件緩存依賴
    CacheDependency mydep5 = new CacheDependency(new string[] { "data.xml", "data1.xml" },new string[] { "Category", "Category1" }, mydep);
//文件和鍵值上次修改的依據時間
    CacheDependency mydep6 = new CacheDependency(new string[] { "data.xml", "data1.xml" },new string[] { "Category", "Category1" }, DateTime.Now);
//文件、另一個緩存依賴和鍵值上次修改的依據時間
    CacheDependency mydep6 = new CacheDependency(new string[] { "data.xml", "data1.xml" },new string[] { "Category", "Category1" }, mydep,DateTime.Now);

復制代碼 代碼如下:

public partial class CacheDependencyPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GetData();
        }
    }
    private void GetData()
    {
        DataTable tableData = new DataTable();
        if (Cache["data"] == null)//用于引用該項的緩存鍵。如果緩存改變,則true;詳情百度c#的Cache對象!
        {
            DataSet ds = new DataSet();
            string filePath = Server.MapPath("~/App_Data/XMLFile.xml");//服務器數據絕對地址
            ds.ReadXml(filePath);//讀取文件內的數據,保存在ds里
            tableData = ds.Tables[0];
            CacheDependency cdy = new CacheDependency(filePath,DateTime.Now);
            Cache.Insert("data", tableData, cdy);//通過使用 Insert(重載Insert方法)方法將項添加到緩存中
            //if (cdy.HasChanged)
            //{
                System.Diagnostics.Debug.WriteLine("Xml已變更");
            //}
        }
        else
        {
            tableData = (DataTable)Cache["data"];//通過指定其鍵和值將項添加到緩存中
        }
        grvCS.DataSource = tableData;
        grvCS.DataBind();

        //DataSet mds = new DataSet();//驗證數據綁定用,因為xml層次結構的問題導致了數據綁定失敗;
        //mds.ReadXml(Server.MapPath("~/App_Data/XMLFile.xml"));
        //grvCS.DataSource = mds;
        //grvCS.DataBind();
    }
}


其中
1.記得在view頁面為gridview綁定相應的數據字段。
2.注意xml的格式,作者本人在實驗的時候就應Xml數據格式的問題導致讀取的數據綁定失敗。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美国产免费 | 色综合久 | 欧美黑人xxx | 日韩成人在线观看视频 | 成人综合区 | 亚洲视频一区二区三区 | 日韩视频区| 中文字幕在线观看亚洲 | 91精品国产乱码久久久久久久久 | 欧美三区 | 久久久久久久久综合 | 免费在线日本 | 国产日韩欧美在线 | 一区二区免费在线播放 | 策驰影院在线观看2024 | 久久人人爽爽人人爽人人片av | 久草综合在线 | av网站大全免费 | 亚洲高清免费视频 | 可以看黄的视频 | 久久亚洲一区 | 天天夜夜操操 | 4虎av| 国产欧美精品一区aⅴ影院 日韩精品区 | 国产噜噜噜噜噜久久久久久久久 | h小视频| 亚洲乱码一区二区 | 99久久99热这里只有精品 | 亚洲一区欧美 | 91高清免费| h色网站免费观看 | av超碰| 日韩免费在线视频 | 国产精品自产av一区二区三区 | 日韩欧美中文字幕在线视频 | 亚洲一区视频在线 | 99久久久久久久久 | 91亚洲狠狠婷婷综合久久久 | 国产免费一区二区三区四区五区 | 国产一区视频在线 | 国产免费av在线 |