ASP.NET缓存依赖之SQL Server篇

1.为 SQL Server 启用缓存通知

在命令行下运行:
aspnet_regsql.exe -S 127.0.0.1 -U sa -P sa -ed -d 数据库名称 -et -t 表名

例如:
aspnet_regsql.exe -S 127.0.0.1 -U sa -P sa -ed -d Northwind -et -t Employees

注:aspnet_regsql.exe一般会于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727。

2.站点配置文件web.config设置

<configuration>
    <connectionStrings>
      <add name="SQLServer" connectionString="server=(local);database=Northwind;user id=sa;password=sa;" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
      <caching>
        <sqlCacheDependency enabled="true" pollTime="1000" >
          <databases>
            <add name="Northwind" connectionStringName="SQLServer" pollTime = "1000"/>
          </databases>
        </sqlCacheDependency>
      </caching>
    </system.web>
</configuration>

3.ASP.NET页面启用缓存

Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>SQL缓存依赖测试-Mzwu.Com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>

Default.aspx.cs:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = DateTime.Now.ToString();
    }
}

试一下,只要Employees表中的数据未更新,Label1上的时间戳就不会变化!

上一篇: C#预处理指令
下一篇: C#重载构造函数的调用
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 4992
发表评论
登录后再发表评论!