第一步

修改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. Windows8.1使用博客客户端写博客

    1.首先去微软官网下载客户端(Windows live writer) http://windows.microsoft.com/zh-cn/windows-live/essentials 安装步骤 ...

  2. c# post方式发送请求

    public static bool CheckNew(string serverIP) { bool passed = false; try { string url = string.Format ...

  3. [Google Code Jam (Round 1A 2008) ] A. Minimum Scalar Product

    Problem A. Minimum Scalar Product   This contest is open for practice. You can try every problem as ...

  4. Array.prototype.slice()的用法

    我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js ...

  5. BZOJ 2436 NOI嘉年华(单调优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2436 题意:两个会场不能同时表演,但是同一个时间可以同时表演,要求让两个会场表演数量最小的最大,然后 ...

  6. LeetCode_Subsets II

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  7. Ubuntu下配置NFS服务

    Table of Contents 1.下载相关软件 2.建立共享目录 3.修改该配置文件 4.重启服务 5.测试服务器 6.测试客户端 测试系统:Ubuntu8.04 1.下载相关软件 使用如下命令 ...

  8. 理解 Linux 配置文件分类和使用

    理解 Linux 配置文件分类和使用 本文说明了 Linux 系统的配置文件,在多用户.多任务环境中,配置文件控制用户权限.系统应用程序.守护进程.服务和其它管理任务.这些任务包括管理用户帐号.分配磁 ...

  9. Find Median from Data Stream 解答

    Question Median is the middle value in an ordered integer list. If the size of the list is even, the ...

  10. C++私有构造函数

    一. 类的构造函数一般是public的,但是也可以是private的.构造函数为私有的类有这样的特点: <1>不能实例化:因为实例化时类外部无法访问其内部的私有的构造函数: <2&g ...