第一步

修改web,config

<!--定义数据库连接-->
 <connectionStrings>
  <add
name="NorthwindConnectionString"
connectionString="Server=USERRYRDB;Database=Northwind;UID=sa;pwd=密码"
providerName="System.Data.SqlClient"/>
 </connectionStrings>
 <system.web>
   
<!-- 定义缓存策略-->
  <caching>
   <sqlCacheDependency
enabled="true" pollTime="10000">
    <databases>
         
<!--
          name:必需的 String 属性。
              要添加到配置集合中的
SqlCacheDependencyDatabase 对象的名称。
              此名称用作 @ OutputCache 指令上
SqlDependency 属性的一部分。
          pollTime:设置 SqlCacheDependency
轮询数据库表以查看是否发生更改的频率(以毫秒计算)。这儿是一个测试,所以设为10秒,请加大此值
         
-->
     <add connectionStringName="NorthwindConnectionString"
name="Categories"/>
    </databases>
   </sqlCacheDependency>
  </caching>
 </system.web>

第二步.定义cachedData测试类

using System;
using System.Data;
using System.Configuration;
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.Web.Caching;
using
System.Data.SqlClient;

/// <summary>
/// Summary description for CachedData
///
</summary>
public class CachedData
{
    private string
Key;
    private string _Source;
    /// <summary>
    ///
指示数据从哪儿读取的
    /// </summary>
    public string Source { get {
return _Source; } }
 public CachedData()
 {
        Key =
"Categories";
        _Source = "未知";
 }

//读取数据
    public DataView getFromCache() {
        if
(HttpRuntime.Cache[Key] == null)
        {
           
//取数据
            SqlConnection conn = new SqlConnection();
           
conn.ConnectionString =
ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
           
SqlCommand comm = new SqlCommand("SELECT [CategoryID], [CategoryName],
[Description] FROM [Categories]", conn);
            SqlDataAdapter sda = new
SqlDataAdapter(comm);
            DataSet ds = new DataSet();
           
conn.Open();
            sda.Fill(ds);
            DataView dv =
ds.Tables[0].DefaultView;
            conn.Close();

//启用更改通知
           
SqlCacheDependencyAdmin.EnableNotifications(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
           
//连接到 SQL Server 数据库并为 SqlCacheDependency 更改通知准备数据库表
           
SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString,
"Categories");
            //制定缓存策略
            SqlCacheDependency scd =
new SqlCacheDependency("Categories", "Categories");
           
//插入缓存
            HttpRuntime.Cache.Insert(Key, dv, scd);
           
_Source = "Database";
            return dv;
        }
        else
{
            //从缓存中取值
            _Source = "cache";
           
return (DataView)HttpRuntime.Cache[Key];
           
        }
   
}
}

这样就完成了。写个页面测试一下就行了。

sqlCacheDependency 更新缓存Cache的更多相关文章

  1. Java 中常用缓存Cache机制的实现

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中 ...

  2. Java 中常用缓存Cache机制的实现《二》

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. AD: Cache 所谓缓存,就是将程序或系统经常要 ...

  3. Java中常用缓存Cache机制的实现

    缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例. 这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件 ...

  4. Java中经常使用缓存Cache机制的实现

    缓存,就是将程序或系统常常要调用的对象存在内存中,一遍其使用时能够高速调用,不必再去创建新的反复的实例. 这样做能够降低系统开销.提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件 ...

  5. ASP.NET缓存 Cache

    缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...

  6. POCO库——Foundation组件之缓存Cache

    缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效, ...

  7. [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能

    [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...

  8. .Net自带缓存Cache的使用

    对于数据比较大,经常要从数据库拿出来用的,可以考虑使用.Net自带的缓存Cache,简单好用: //向内存中插入一个缓存 System.Web.HttpRuntime.Cache.Insert(&qu ...

  9. 缓存Cache

    转载自  博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...

随机推荐

  1. 开心菜鸟系列学习笔记--------初探Nodejs(了解篇)

    一Node.js开始学习了!    1) 输出hellow worlds   a.建一个js文件 hello.js 写 console.info('hellow world !!!');    进入终 ...

  2. C#语言之“中英文混合字符串对齐”的方法【转】

    参考自:(1)http://www.cnblogs.com/cnluoke/articles/1213398.html (2)http://www.cnblogs.com/sql4me/archive ...

  3. logstash date插件介绍

    时间处理(Date) 之前章节已经提过, filters/date 插件可以用来转换你的日志记录中的时间字符串,变成 LogStash::Timestamp 对象,然后转存到 @timestamp 字 ...

  4. 开发人员应该知道的SEO

    搜索引擎是如何工作的 > 如果你有时间,可以读一下谷歌的框架: http://infolab.stanford.edu/~backrub/google.html > 这是一个老的,有些过时 ...

  5. 高精度快速幂(Java版)

    import java.io.*; import java.math.*; import java.util.*; import java.text.*; public class Main { pu ...

  6. Hive 8、Hive2 beeline 和 Hive jdbc

    1.Hive2 beeline  Beeline 要与HiveServer2配合使用,支持嵌入模式和远程模式 启动beeline 打开两个Shell窗口,一个启动Hive2 一个beeline连接hi ...

  7. hdu 5676 ztr loves lucky numbers(dfs+离线)

    Problem Description ztr loves lucky numbers. Everybody knows that positive integers are lucky if the ...

  8. Direct3D 对X模型载入

    今天我们来学习Direct3D对模型的导入使用,Direct3D支持.X模型文件导入使用,.X文件是微软定义的3D模型文件格式,其中包含网格,动画,纹理等等一些信息. 目前3DS Max 和 Maya ...

  9. 使用STS 创建spring配置文件

    1.创建一个bean文件 2.输入文件名applicationContext.xml 3.这里会自动显示模板文件 4.创建后,自动填充头不定义 到这里就可以发现,我们创建spring文件时,需要的配置 ...

  10. Mysql日期函数,时间函数使用的总结

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now();+--------------------- ...