sqlCacheDependency 更新缓存Cache
第一步
修改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的更多相关文章
- Java 中常用缓存Cache机制的实现
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中 ...
- Java 中常用缓存Cache机制的实现《二》
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. AD: Cache 所谓缓存,就是将程序或系统经常要 ...
- Java中常用缓存Cache机制的实现
缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例. 这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件 ...
- Java中经常使用缓存Cache机制的实现
缓存,就是将程序或系统常常要调用的对象存在内存中,一遍其使用时能够高速调用,不必再去创建新的反复的实例. 这样做能够降低系统开销.提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件 ...
- ASP.NET缓存 Cache
缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...
- POCO库——Foundation组件之缓存Cache
缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效, ...
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...
- .Net自带缓存Cache的使用
对于数据比较大,经常要从数据库拿出来用的,可以考虑使用.Net自带的缓存Cache,简单好用: //向内存中插入一个缓存 System.Web.HttpRuntime.Cache.Insert(&qu ...
- 缓存Cache
转载自 博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...
随机推荐
- 关于HTML5中audio标签在手机中的autoplay
这个问题是我最头疼的: 问题描述:在开发手机网页的时候,苹果和三星的一些浏览器不能自动开始播放 解决办法:在这个页面上弹出一个层来触发audio标签的play()方法,或者你还可以 谷歌一下----& ...
- windows下使用php重命名目录下的文件
rename函数一直报错,最后发现是windows下文件名的编码问题,如果项目文件是utf-8的话,一定要经过一步转码 $dir = $path . '/../resource/logo'; $han ...
- 使用ARM和VMSS创建自动扩展的web集群
在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到 ...
- 在开启bin-log日志下Mysql报错
This function has none of DETERMINISTIC, NO SQL解决办法 创建存储过程时 出错信息: ERROR 1418 (HY000): This function ...
- 设置Ubuntu Mysql可以远程链接
1:修改my.cnf配置文件 $sudo vim /etc/mysql/my.cnf 修改为: bind-address = 0.0.0.0 2:进行授权操作 mysql> grant all ...
- 使用opencv传中文文件崩溃
这个问题经过我的调试发现: 程序是在 while (*at && !isdigit(*at)) at++; 这个语句时crash的,但是跟进去是isdigit的问题,因为变量a ...
- Unix/Linux环境C编程入门教程(42) 终端控制篇
函数介绍 getopt(分析命令行参数) 相关函数 表头文件 #include<unistd.h> 定义函数 int getopt(int argc,char * const argv[ ...
- poj2262
Goldb ...
- oracle 12g sqlplus安装
一.下载oracle 12g sqlplus软件 linux 64位操作系统,oracle安装包地址 http://www.oracle.com/technetwork/topics/linuxx86 ...
- JavaScript面向对象之类的创建
JavaScript对象的定义: 在js中函数极为对象,对象分为二种:对象字变量产生的对象连接到Object.prototype:函数对象连接到Function.prototype 方法:当一个函数被 ...