SqlCacheDependency asp.net 页面缓存

本文详细介绍了在ASP.NET应用中使用SqlCacheDependency和SqlCacheDataSourceControl进行SQL缓存的配置与优化,包括如何在不同版本的SQL Server上进行适配,以及在web.config中的相关配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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() 事件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值