using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Caching;
using System.Data; public partial class CACHE查询条件 : System.Web.UI.Page
{ protected void Button1_Click(object sender, EventArgs e)
{
string cond = "";
if (this.DropDownList1.SelectedIndex > 0)
{
cond += "stu_sex='" + this.DropDownList1.SelectedValue + "'"; }
else
{
cond += "1=1";
} if (this.TextBox1.Text != "")
{
cond += " and age=" + this.TextBox1.Text;
}
ViewState["cond"] = cond;
Page_Load(null, null);
}
//页面加载时,将DataSet插入到委托中去。
protected void Page_Load(object sender, EventArgs e)
{ //首先从Cache中获取Dataset
DataSet students = (DataSet)Cache["Students"];
//如果Cache中不存在DataSet,则从数据库中获取DataSet,并添加到缓存中
if (students == null)
{
students = GetStudentDataSet(); //创建一个基于web.config配置文件的依赖,当该文件发生变化时,则从缓存中移除缓存项。
CacheDependency cd = new CacheDependency(Server.MapPath("web.config")); //在Insert中指定该依赖项,并且指定缓存的优先级为高优先级,传递一个传托。
Cache.Insert("Students", students, cd, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromHours(1));
} DataView view = students.Tables[0].DefaultView;
if (ViewState["cond"] != null)
{
view.RowFilter = ViewState["cond"].ToString();
}
GridView1.DataSource = view;
//GridView1.DataSource = students; GridView1.DataBind();
}
/// <summary>
/// 从数据库中获取产品信息,并返回一个DataSet对象
/// </summary>
/// <returns></returns>
protected DataSet GetStudentDataSet()
{
string sql = "select * from t_student";
DataSet ds = DBHelper.SqlHelper.ExecuteDataSetText(sql, null);
return ds;
}
}