做最好的自己~~

Be My Personal Best!

导航

缓存DataSet以提高性能


//下面是一个小实列,具体用法请参见Ado.net

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class Default4 : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        //构建新的dataset,并用Cache.Get()方法的结果为它赋值,
        //该方法返回匹配指定键名的Object实列.所以要阄它转化为dataset类型
        DataSet dst = (DataSet)Cache.Get("CachedDataSet");
        //如果dst中没有内容即为空
        if (dst == null)
        {
            //重新填充dst  并设置在内存中的保存时间...
            this.Label1.Text = "The data came from a connction to the database";
            SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["myCon"]);
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from Test", con);
            SqlDataAdapter dap = new SqlDataAdapter(cmd);
            dst = new DataSet();
            dap.Fill(dst, "Test");
            //得到现在系统时间
            dst.ExtendedProperties.Add("CreateTime", DateTime.Now.ToLongTimeString());
            //设置在内存中的保存时间
            Cache.Insert("CachedDataSet", dst, null, DateTime.Now.AddMinutes(5), TimeSpan.Zero);
        }
        else
        {
            //dataset中已经有数据时
            this.Label1.Text = "The Data come from the cahe,It was created at:" + dst.ExtendedProperties["CreateTime"].ToString() +"<br>The current Time is:"+DateTime.Now.ToLongTimeString();
        }
        this.GridView1.DataSource = dst.Tables[0].DefaultView;//不要忘记绑定数据,两句常在一起哟。。。
        this.GridView1.DataBind();
    }

}

posted on 2008-04-15 22:21  阿万  阅读(591)  评论(0编辑  收藏  举报