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應用程序時最重要的特性之一。