编程世界 - 计算机爱好者和编程爱好者的天堂!

编程世界

当前位置: 主页 > Dotnet > ASP.NET >

ASP.NET 数据库缓存依赖(2)

时间:2008-11-29 18:27来源:编程世界 作者:无名 点击:
最后我们把DataSet连同OnRemove委托一起插入到缓存中,在Session_Start中,为了保险,我另外添加了一个判断来调用RefreshCache方法填充缓存。 到这里,我们应用

  
  最后我们把DataSet连同OnRemove委托一起插入到缓存中,在Session_Start中,为了“保险“,我另外添加了一个判断来调用RefreshCache方法填充缓存。
  
  到这里,我们应用程序就创建好了,在任何页面中都可以访问到缓存的DataSet。在WebForm1aspx中,我演示了如何使用它。
  
  [C#]
  private void Page_Load(object sender, System.EventArgs e)
  
  {
  
  //保证缓存非空,如果为空,则填充它
    if(Cache["Employees"] == null)
       cacheStatus.Text = "Cache Refreshed at "+ DateTime.Now.ToLongTimeString();
    else
       cacheStatus.Text = " DataSet from Cache ";
    DataSet ds = (DataSet)Cache["Employees"];
    DataGrid1.DataSource= ds.Tables[0];
    DataGrid1.DataBind();
  }
  
   现在,如果你请求这个页面,它将会每次成功的显示从从Cache中取得的DataSet,如果你保持浏览器打开,同时打开SQL Server的查询分析器,选择Northwind数据库,执行SQL语句'Update Employees set Lastname = 'Davovlieu' where EmployeeID =1',更新表中的记录,然后重新请求该页面,你将会看到缓存已经失效并刷新。
  
  译者按:关于基于数据库的缓存依赖,gotdotnet上也有一个用DataSet实现的(Rob Howard 实现) ASP.NET Cache Invalidation on Database Change,
  
  目前在ASP.NET1.1版本没有非常自然的解决方案,值得欣慰的是,随Whidbey一起发布的ASP.NET2.0,还有Yuku,从数据层提供了一个不错的实现。让我们拭目以待!
  
  下面的工程是Visual Studio.NET 2003格式。
  
  下载本文工程 (责任编辑:编程世界)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片