zoukankan      html  css  js  c++  java
  • SqlCacheDependency [转]

    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() 事件中。因为Sql Server 2005 基于通知的缓存失效对支持查询通知的查询语法有许多限制,所以我觉得最好先别用,而是使用轮询机制。在使用轮询机制时如本例子中的SqlCacheDependency="VS2005_Test:sqlcache",冒号前面是配置文件中配置的相关值指向数据库连接,后面是启用SqlCache的表名,注意区分大小写。
  • 相关阅读:
    写在连载之前——DIY微型操作系统篇
    footer始终在页面最底部的方法(问题待检验)
    各种二级菜单代码
    复选框已经有checked,但是页面没有选中效果(解决)
    px em rem 的区别
    marquee标签详解
    Docker:正常运行的容器突然端口不通一般检查方法
    linux中 vm.overcommit_memory 的含义
    redis6 redis-cli cluster的使用总结
    利用Java反射机制优化简单工厂设计模式
  • 原文地址:https://www.cnblogs.com/RobotTech/p/874724.html
Copyright © 2011-2022 走看看