我总是想知道你如何处理数据库值的缓存(在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));}
我在这里如何处理缓存?
谢谢,
丹尼斯
答案 0 :(得分:1)
我们为缓存做了些什么:
在页面方面,使用全局容器(例如数据集)存储所有必需的数据,每个数据为其添加时间标记
在后端,使用相同的容器存储数据,并使用时间标记
页面刷新时,将时间标记与当前日期时间进行比较,从该容器中获取数据;
或向后端发送refresh_fetch,后端将从db获取数据并更新其容器的缓存内容,然后将更新的数据发送回页面
页面更新其容器并显示
流程就像这样,但是,根据实际情况,容器,刷新策略......可能不同