1.开启数据库缓存依赖支持
开始,运行,cmd 输入 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql -S localhost -E -d database -ed
database 为数据库名
2. web.config中添加:
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add name="cachename" connectionStringName="SqlConnection" pollTime="12000"/>
</databases>
</sqlCacheDependency>
</caching>
3.要缓存的数据页:
using System.Web.Caching; //引用命名空间
private DataSet list; //缓存这个dataset;
Page_Load中:
SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString, "Tablename");
SqlCacheDependency cacheinfo = new SqlCacheDependency("cachename", "Tablename");
*Tablename 要缓存的表名
list = (DataSet)Cache["is"];
if (list == null)
{
list = shop.SelindexNew(); // 这个为业务逻辑层方法,也就是读取数据的代码,方法返回dataset
Cache.Insert("is", list, cacheinfo);
}
未启用当前数据库的 SQLServer Service Broker,因此查询通知不受支持。
use [SiteMapDB2005]
alter database [SiteMapDB2005] set enable_broker
use [SiteMapDB2005]
alter database [SiteMapDB2005] set enable_broker WITH ROLLBACK IMMEDIATE