简单实现SQL Server2000数据库缓存

第一步:修改配置文件

  <connectionStrings>
    <add name="ConnectionString"connectionString="Server=(local);database=建立缓存的数据库;uid=sa;pwd=123456"providerName="System.Data.SqlClient" />
  </connectionStrings>

    <!-- 定义缓存策略-->
    <caching>
      <sqlCacheDependency enabled="true" pollTime="10000">        
        <databases>
          <add connectionStringName="ConnectionString" name="建立缓存的数据库"/>
        </databases>
      </sqlCacheDependency>
    </caching>

第二步: 建立缓存

SqlCacheDependencyAdmin.EnableNotifications(数据库连接字符串);
//连接到 SQL Server 数据库并为 SqlCacheDependency 更改通知准备数据库表
SqlCacheDependencyAdmin.EnableTableForNotifications(数据库连接字符串, 表名,用来说明数据库中哪些表更新时 重新建立缓存);
//定制缓存策略
SqlConnectionStringBuilder ConnectionStringBuilder = new SqlConnectionStringBuilder(数据库连接字符串);
//建立依赖性
SqlCacheDependency CacheDependency = new SqlCacheDependency(数据库名(必须与配置文件中的配置的名字一致),进行缓村的表名);

SqlDataAdapter Adapter = newSqlDataAdapter
Adapter.SelectCommand = "select * from 进行缓村的表名";
DataTable dt = new DataTable();
 Adapter.Fill(dt);

if(HttpRuntime.Cache[应用程序缓存名]==null)

{
HttpRuntime.Cache.Add(应用程序缓存名, dt, CacheDependency,Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0),CacheItemPriority.High, null);
return dt;

}
else
{
return (DataTable)HttpRuntime.Cache[应用程序缓存名];
}

两步骤搞定非常简单_-_

using System;
using System.Collections.Generic;
using System.Web.Caching;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            SqlCacheDependencyAdmin.EnableNotifications("testConnectionString");
            //连接到 SQL Server 数据库并为 SqlCacheDependency 更改通知准备数据库表
            SqlCacheDependencyAdmin.EnableTableForNotifications("testConnectionString", "user");
            //定制缓存策略
            SqlConnectionStringBuilder ConnectionStringBuilder = new SqlConnectionStringBuilder("testConnectionString");
            //建立依赖性
            SqlCacheDependency CacheDependency = new SqlCacheDependency("test", "user");


            SqlDataAdapter Adapter = new SqlDataAdapter();
            Adapter.SelectCommand.CommandText = "select * from user";
            DataTable dt = new DataTable();
            Adapter.Fill(dt);
            if (HttpRuntime.Cache["user"] == null)
            {
                HttpRuntime.Cache.Add("user", dt, CacheDependency, Cache.NoAbsoluteExpiration, new TimeSpan(1, 0, 0), CacheItemPriority.High, null);
                int dd = dt.Rows.Count;
            }
            else
            {
                DataTable tdt=(DataTable)HttpRuntime.Cache["user"];
                int kk = tdt.Rows.Count;
            }
        }
    }
}

<appSettings/>
    <connectionStrings>
        <add name="testConnectionString" connectionString="Data Source=123123131\SQL2005;Initial Catalog=test;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
    </connectionStrings>

    <system.web>
    <!-- 定义缓存策略-->
    <caching>
      <sqlCacheDependency enabled="true" pollTime="10000">
        <databases>
          <add connectionStringName="testConnectionString" name="test"/>
        </databases>
      </sqlCacheDependency>
    </caching>

原文地址:https://www.cnblogs.com/smallfa/p/1614592.html