asp.net页面SqlCacheDependency缓存实例
程序员文章站
2024-02-24 17:13:34
缓存技术是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程序设计有所帮助。