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