处理DB-Data缓存的正确方法

时间:2011-05-03 08:25:30

标签: c# asp.net sql-server database caching

我总是想知道你如何处理数据库值的缓存(在C#,ASP.NET中),所以你可以不要重新加载几个DataSource绑定的ASP控件,或者每次使用某个后端方法时都不必重新加载它们。

我们来看下面的例子:

aspx.cs-文件:

List<FormElement> elements = FormElement.GetForForm(Session["FormName"].ToString());

后端-方法:

public static List<FormElement> GetForForm(string fName)
    {
        DataTable dt = new DataTable();
        SqlCommand cmd = new SqlCommand("select Rank, Control, Variable from inspire.dbo.formelement where formid=(select id from inspire.dbo.form where name=@name)", Database.Conn);
        cmd.Parameters.Add(new SqlParameter("@name", fName));
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        return dt.Rows.ToList<FormElement>(item => new FormElement(item));}

我在这里如何处理缓存?

谢谢,

丹尼斯

1 个答案:

答案 0 :(得分:1)

我们为缓存做了些什么:

  1. 在页面方面,使用全局容器(例如数据集)存储所有必需的数据,每个数据为其添加时间标记

  2. 在后端,使用相同的容器存储数据,并使用时间标记

  3. 页面刷新时,将时间标记与当前日期时间进行比较,从该容器中获取数据;

    或向后端发送refresh_fetch,后端将从db获取数据并更新其容器的缓存内容,然后将更新的数据发送回页面

  4. 页面更新其容器并显示

  5. 流程就像这样,但是,根据实际情况,容器,刷新策略......可能不同