欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net页面SqlCacheDependency缓存实例

程序员文章站 2024-02-21 18:25:40
缓存技术是asp.net程序设计中非常实用的技术,也是大型web程序设计中比较常见的技术。本文就以实例形式对此加以说明。具体如下: asp.net页面的sqlcached...

缓存技术是asp.net程序设计中非常实用的技术,也是大型web程序设计中比较常见的技术。本文就以实例形式对此加以说明。具体如下:

asp.net页面的sqlcachedependency sql缓存:

cahce/sqlcachepage.aspx页面代码如下:

<%@ page language="c#" masterpagefile="~/site.master" autoeventwireup="true" codefile="sqlcachepage.aspx.cs"
  inherits="cahce_sqlcachepage" title="页的sql缓存" %>
<%@ outputcache duration="999999" sqldependency="vs2005_test:sqlcache" varybyparam="none" %>
<asp:content id="content1" contentplaceholderid="contentplaceholder1" runat="server">
<p>
duration="999999" sqldependency="vs2005_test:sqlcache" varybyparam="none"<br />
如果是sqlserver2005则改成sqldependency="commandnotification<br />
注意配置文件中的配置
</p>
<p>
<%=datetime.now %>
</p>
</asp:content>

数据源控件的sql缓存:

cahce/sqlcachepage.aspx页面代码如下:

<%@ page language="c#" masterpagefile="~/site.master" autoeventwireup="true" codefile="sqlcachedatasourcecontrol.aspx.cs"
  inherits="cahce_sqlcachedatasourcecontrol" title="数据源控件的sql缓存" %>
<asp:content id="content1" contentplaceholderid="contentplaceholder1" runat="server">
<p>
datasource控件设置如下属性:enablecaching="true" sqlcachedependency="vs2005_test:sqlcache"
cacheduration="infinite"<br />
如果是sqlserver2005则改成sqldependency="commandnotification<br />
注意配置文件中的配置
</p>
<p>
<%=datetime.now %>
</p>
<p>
<asp:sqldatasource id="sqldatasource1" runat="server" enablecaching="true" sqlcachedependency="vs2005_test:sqlcache"
cacheduration="infinite" connectionstring="<%$ connectionstrings:sqlconnectionstring %>"
selectcommand="select * from [sqlcache]"></asp:sqldatasource>
<asp:gridview id="gridview1" runat="server" datasourceid="sqldatasource1" allowsorting="true">
</asp:gridview>
</p>
</asp:content>

web.config中的相关配置:

 <connectionstrings>
<add name="sqlconnectionstring" connectionstring="data source=.\sqlexpress;attachdbfilename=|datadirectory|\vs2005_test.mdf;integrated security=true;user instance=true"
providername="system.data.sqlclient" />
</connectionstrings>
<system.web>
<caching>
<sqlcachedependency enabled="true" polltime="10000">
<databases>
<add name="vs2005_test" connectionstringname="sqlconnectionstring" />
</databases>
</sqlcachedependency>
<!-- 如果是sqlserver2005的话,则只需如下设置,因为sqlserver支持基于通知的缓存失效
<sqlcachedependency enabled="true" />
-->
</caching>
</system.web>

注意:对于sql server 2005来说,基于通知的缓存失效,不用aspnet_regsql设置,要设置属性sqldependency="commandnotification"。在首次执行某 sql 查询之前,必须在应用程序某处调用 system.data.sqlclient.sqldependency.start() 方法。此方法应放在 global.asax 文件的 application_start() 事件中。

希望本文所述的缓存技术对大家的asp.net程序设计有所帮助。