C#緩存處理

  c#緩存處理方式:

1 、    在ASP.NET中頁面緩存的使用方法非常的簡單,只需要在aspx頁的頂部加這樣一句聲明即可:    <%@ OutputCache Duration="60" VaryByParam="none" %>

  其中:   Duration     緩存的時間(秒)。這是必選屬性。如果未包含該屬性,將出現分析器錯誤。如果不加<%@ OutputCache Duration="60" VaryByParam="none" %>,每次刷新頁面上的時間每次都是在變。而加了緩存聲明以後,每次刷新頁面的時間並不變化,60秒後才變化一次,說明數據被緩存了60秒。

 

2、 通過後臺代碼的形式添加:

protected void Page_Load(object sender, EventArgs e) {
            Bind();
        }
        public void Bind()
        {
            DataTable dt = new DataTable();           
            if (this.Cache["Keys"] == null)
            {
                string connstring = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
                SqlConnection conn = new SqlConnection(connstring);
                conn.Open();
                string sql = "select top 100000 * from SF_InstanceActivity";
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                da.Fill(dt);
                conn.Close();
                // Go get the data from the database
                this.Cache.Insert("Keys", dt, null, DateTime.Now.AddHours(2), TimeSpan.Zero);
            }
            else
            {
               dt = this.Cache["Keys"] as DataTable;
            }
            ASPxGridView1.DataSource = dt;
            ASPxGridView1.DataBind();
        }

上例首先檢查具有Keys鍵的項是否在緩存中。如果不在,就從後端數據庫檢索一個ADO.NET DataTable,並使用Insert方法把它放到緩存中。本例使用的是Insert的一個重載版本,它允許爲緩存對象指定一個絕對過期時間(2小 時),而不是指定一個週期性的過期。相反,如果緩存中已經有這個項,就將其取回,並使用As表達式,將其強制轉換回一個DataTable。
對 ADO.NET檢索到的數據進行緩存時,注意既可像上例那樣緩存DataTable對象,也可緩存整個DataSet對象,因爲兩種對象都同任何數據源完 全地斷開,不會保持數據庫連接。對數據讀取器(比如SqlDataReader)進行緩存似乎更好一些,因爲它們只使用一次(它們是“只進”的讀取器), 而且在打開的情況下將一直佔據一個數據庫連接。
ASP.NET緩存引擎強大的靈活性和功能使其成爲創建高性能ASP.NET應用程序時最重要的特性之一。

 

發佈了45 篇原創文章 · 獲贊 10 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章