`
webcode
  • 浏览: 5955868 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用sqlCacheDependency

 
阅读更多
将一个取自SQLServer的数据集放入缓存中了现在想数据库更新的时候缓存中的数据集同步更新

第一步

修改web,config

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

第二步.定义cachedData测试类

usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.Caching;
usingSystem.Data.SqlClient;

/**////<summary>
///SummarydescriptionforCachedData
///</summary>

publicclassCachedData
...{
privatestringKey;
privatestring_Source;
/**////<summary>
///指示数据从哪儿读取的
///</summary>

publicstringSource...{get...{return_Source;}}
publicCachedData()
...{
Key
="Categories";
_Source
="未知";
}


//读取数据
publicDataViewgetFromCache()...{
if(HttpRuntime.Cache[Key]==null)
...{
//取数据
SqlConnectionconn=newSqlConnection();
conn.ConnectionString
=ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlCommandcomm
=newSqlCommand("SELECT[CategoryID],[CategoryName],[Description]FROM[Categories]",conn);
SqlDataAdaptersda
=newSqlDataAdapter(comm);
DataSetds
=newDataSet();
conn.Open();
sda.Fill(ds);
DataViewdv
=ds.Tables[0].DefaultView;
conn.Close();

//启用更改通知
SqlCacheDependencyAdmin.EnableNotifications(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
//连接到SQLServer数据库并为SqlCacheDependency更改通知准备数据库表
SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString,"Categories");
//制定缓存策略
SqlCacheDependencyscd=newSqlCacheDependency("Categories","Categories");
//插入缓存
HttpRuntime.Cache.Insert(Key,dv,scd);
_Source
="Database";
returndv;
}

else...{
//从缓存中取值
_Source="cache";
return(DataView)HttpRuntime.Cache[Key];

}

}

}


3.测试页面

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>UntitledPage</title>
</head>
<body>
<formid="form1"runat="server">
<asp:LabelID="Label1"runat="server"Text="Label"></asp:Label>
<asp:DataGridrunat="server"ID="Repeater1"></asp:DataGrid>&nbsp;
</form>
</body>
</html>
其对应cs文件

usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:System.Web.UI.Page
...{
protectedvoidPage_Load(objectsender,EventArgse)
...{

BindRepeater1();

}

privatevoidBindRepeater1()...{
CachedDatacd
=newCachedData();
this.Repeater1.DataSource=cd.getFromCache();
this.Repeater1.DataBind();
this.Label1.Text=cd.Source;
}

}
分享到:
评论

相关推荐

    PetShop4.0源码 详细的解析资料 两种同步和基于MSMQ的异步处理 缓存处理策略 Master Pages Wizard Control

    微软提供PetShop4.0,最佳的ASP.NET学习资料。附上了详细的解析。 功能介绍: 1.System.Transactions替代了服务组件。... 2.使用泛型的强类型代替了IList。...6.使用SqlCacheDependency缓存处理策略

    petshop(宠物商店) V4.0源码文件

    可以说,学习PetShop 4.0是深入掌握ASP.NET 2.0技术的捷径。 大名鼎鼎的PetShop(宠物商店)V4.0 1.System.Transactions替代了服务组件。... 2.使用泛型的强类型代替了IList。...使用SqlCacheDependency缓存处理策略

    SqlCacheDependency 基于多表的缓存应用

    SqlCacheDependency 基于多表的缓存应用

    SqlCacheDependency示例

    SqlCacheDependency 示例 示例包括两个方面: 1.使用aspnet_regsql.exe的SqlCacheDependency的示例 2.使用SqlCacheDependencyAdmin的示例

    C#缓存之SqlCacheDependency用法实例总结

    本文整理汇总了C#缓存的数据库依赖类SqlCacheDependency的使用方法,具体内容如下: 1、数据库依赖类SqlCacheDependency 数据库缓存依赖主要解决的是当数据库的内容发生改变时,如何及时通知缓存,并更新缓存中的...

    简化了SqlCacheDependency的Web缓存

    将SqlCacheDependency与Web缓存一起使用

    asp.net中SqlCacheDependency缓存技术概述

    本文实例讲述了asp.net中SqlCacheDependency缓存技术,对于大型web程序设计来说具有很高的实用价值。具体如下: 对于访问量大,但更新较少的网站中使用缓存技术,可以大大提高运行效率;加上.NET 2.0提供的缓存依赖...

    【ASP.NET编程知识】asp.net页面SqlCacheDependency缓存实例.docx

    【ASP.NET编程知识】asp.net页面SqlCacheDependency缓存实例.docx

    asp.net页面SqlCacheDependency缓存实例

    主要介绍了asp.net页面SqlCacheDependency缓存实例,以一个完整实例来展现asp.net中缓存技术的使用方法,需要的朋友可以参考下

    在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency

    当缓存数据库数据时,最理想的状态是数据一直驻留在内存,直到数据库发生了改动。在ASP.NET 2.0,可以通过编程或声明代码的方式使用SQL cache dependencies,配合SQL Server 2005来实现此功能。

    宠物商店V4.0版源码

    使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在DB_51aspx文件中,四个数据库附加就可以,然后相应的去改改Web.config。 此...

    宠物商店V4.0版源码 (PetShop V4.0)

    使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在DB_51aspx文件中,四个数据库附加就可以,然后相应的去改改Web.config。 ...

    宠物商店 v4.0 源码.rar

    使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在App_data文件中,四个数据库附加就可以,然后相应的去改改Web.config。 ...

    实例PetShop4.0(ASP.NET)

    新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...

    Microsoft .NET Pet Shop 4.0

    新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...

    微软推出的asp.net2.0经典范例

    新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...

Global site tag (gtag.js) - Google Analytics