您的位置:首页 > 数据库

简单实现SQL Server2000数据库缓存

2009-12-01 15:10 92 查看
第一步:修改配置文件

<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: