第一步

修改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. jdk,j2ee,j2se,j2me的概念区别

    jdk,j2ee,j2se,j2me的概念区别1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包.J2EE是Java 2 ente ...

  2. js中的console

    console.log 是我们在调试代码的时候经常用到的一个方法,也可能也是很多人用的关于console的唯一方法,其实console对象下有很多不错的方法,现在记录总结于此.   log.info. ...

  3. PHP第二课笔记

    ★Php的基本概念 快速入门案例 test.php <html> <body> //<?php  ?>是运行在服务端 <?php   echo 'hello' ...

  4. NET站点Web部署

    NET站点Web部署(一键发布的实现) 在开发过程中经常需要发布到开发环境.测试环境或者预发布环境上给其他同事进行测试验证效果等等,每次发布都要备份,拷贝,修改配置文件等等重复操作非常的麻烦,效率大打 ...

  5. Managing TCP Connections in Dynamic Spectrum Access Based Wireless LANs

    2010年IEEE Secon的一篇文章.当然了,应该是之前就写好了,发表过,还是直接投到Secon了呢?直接投的吧,Secon不接受已发表过的吧. 本文的着笔点:有线网与DSAN(启用了DSA特性的 ...

  6. cf C. Cupboard and Balloons

    http://codeforces.com/contest/342/problem/C #include <cstdio> #include <cstring> #includ ...

  7. nm和readelf命令的区别

    其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题. 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接 ...

  8. java设计模式--结构型模式--代理模式

    代理模式 概述 为其他对象提供一种代理以控制对这个对象的访问. 适用性 1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表. 2.虚代理(VirtualProxy)根据需要创 ...

  9. 2013第50周二eclipse工具尝试

    今天更深入的认识了eclipse开发工具,出现了各种问题在网络的帮助下最终都解决了,感觉似乎明白了很多道理需要总结一下,现在发现晚了,那就先记录下我印象深的几个问题吧: 1.eclipse编辑器设置. ...

  10. CF 579A Raising Bacteria

    题意:细菌爱好者在盒子里面培养细菌.最初盒子是空的,每天可以往盒子里面添加任意数目的细菌,而且每天每个细菌会分裂成两个.在某一时刻要想获得某一数量的细菌,要求最初放置的最少的细菌数目. 思路: 求出 ...