asp.net页面SqlCacheDependency缓存实例
缓存技术是asp.net程序设计中非常实用的技术,也是大型web程序设计中比较常见的技术。本文就以实例形式对此加以说明。具体如下:
asp.net页面的SqlCacheDependencySql缓存:
Cahce/SqlCachePage.aspx页面代码如下:
<%@PageLanguage="C#"MasterPageFile="~/Site.master"AutoEventWireup="true"CodeFile="SqlCachePage.aspx.cs" Inherits="Cahce_SqlCachePage"Title="页的Sql缓存"%> <%@OutputCacheDuration="999999"SqlDependency="VS2005_Test:sqlcache"VaryByParam="none"%> <asp:ContentID="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页面代码如下:
<%@PageLanguage="C#"MasterPageFile="~/Site.master"AutoEventWireup="true"CodeFile="SqlCacheDataSourceControl.aspx.cs" Inherits="Cahce_SqlCacheDataSourceControl"Title="数据源控件的Sql缓存"%> <asp:ContentID="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:SqlDataSourceID="SqlDataSource1"runat="server"EnableCaching="True"SqlCacheDependency="VS2005_Test:sqlcache" CacheDuration="Infinite"ConnectionString="<%$ConnectionStrings:SqlConnectionString%>" SelectCommand="SELECT*FROM[SqlCache]"></asp:SqlDataSource> <asp:GridViewID="GridView1"runat="server"DataSourceID="SqlDataSource1"AllowSorting="True"> </asp:GridView> </p> </asp:Content>
web.config中的相关配置:
<connectionStrings> <addname="SqlConnectionString"connectionString="DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\VS2005_Test.mdf;IntegratedSecurity=True;UserInstance=True" providerName="System.Data.SqlClient"/> </connectionStrings> <system.web> <caching> <sqlCacheDependencyenabled="true"pollTime="10000"> <databases> <addname="VS2005_Test"connectionStringName="SqlConnectionString"/> </databases> </sqlCacheDependency> <!--如果是SqlServer2005的话,则只需如下设置,因为SqlServer支持基于通知的缓存失效 <sqlCacheDependencyenabled="true"/> --> </caching> </system.web>
注意:对于SqlServer2005来说,基于通知的缓存失效,不用aspnet_regsql设置,要设置属性SqlDependency="CommandNotification"。在首次执行某SQL查询之前,必须在应用程序某处调用System.Data.SqlClient.SqlDependency.Start()方法。此方法应放在global.asax文件的Application_Start()事件中。
希望本文所述的缓存技术对大家的asp.net程序设计有所帮助。