`
- 浏览:
5955868 次
- 性别:
- 来自:
上海
-
将一个取自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>
</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;
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
微软提供PetShop4.0,最佳的ASP.NET学习资料。附上了详细的解析。 功能介绍: 1.System.Transactions替代了服务组件。... 2.使用泛型的强类型代替了IList。...6.使用SqlCacheDependency缓存处理策略
可以说,学习PetShop 4.0是深入掌握ASP.NET 2.0技术的捷径。 大名鼎鼎的PetShop(宠物商店)V4.0 1.System.Transactions替代了服务组件。... 2.使用泛型的强类型代替了IList。...使用SqlCacheDependency缓存处理策略
SqlCacheDependency 基于多表的缓存应用
SqlCacheDependency 示例 示例包括两个方面: 1.使用aspnet_regsql.exe的SqlCacheDependency的示例 2.使用SqlCacheDependencyAdmin的示例
本文整理汇总了C#缓存的数据库依赖类SqlCacheDependency的使用方法,具体内容如下: 1、数据库依赖类SqlCacheDependency 数据库缓存依赖主要解决的是当数据库的内容发生改变时,如何及时通知缓存,并更新缓存中的...
将SqlCacheDependency与Web缓存一起使用
本文实例讲述了asp.net中SqlCacheDependency缓存技术,对于大型web程序设计来说具有很高的实用价值。具体如下: 对于访问量大,但更新较少的网站中使用缓存技术,可以大大提高运行效率;加上.NET 2.0提供的缓存依赖...
【ASP.NET编程知识】asp.net页面SqlCacheDependency缓存实例.docx
主要介绍了asp.net页面SqlCacheDependency缓存实例,以一个完整实例来展现asp.net中缓存技术的使用方法,需要的朋友可以参考下
当缓存数据库数据时,最理想的状态是数据一直驻留在内存,直到数据库发生了改动。在ASP.NET 2.0,可以通过编程或声明代码的方式使用SQL cache dependencies,配合SQL Server 2005来实现此功能。
使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在DB_51aspx文件中,四个数据库附加就可以,然后相应的去改改Web.config。 此...
使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在DB_51aspx文件中,四个数据库附加就可以,然后相应的去改改Web.config。 ...
使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能 9。使用了消息队列来实现异时订单处理 使用说明: 数据库在App_data文件中,四个数据库附加就可以,然后相应的去改改Web.config。 ...
新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...
新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...
新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的...