cache的问题 Cache.Insert()里面的依赖项,到底怎么个依赖法?比如所我想依赖于数据库里的一个表,该怎么写?请各位高手给指点下,谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库以来使用依赖缓存SqlCacheDependency类支持与System.Data.SqlClient.SqlDependency类进行集成。应用程序可创建SqlDependency对象,并通过OnChanged事件处理程序接受通知进行注册。这样,应用程序不仅可以使用Sql server 2005的查询通知机制来监测使用SQL查询结果无效的数据更改,并将缓存对象从缓存中移除,而且还可以轻松获取数据更改通知,以便刷新缓存 <add name="strcode" connectionString="data source=127.0.0.1;initial catalog=code;user id=sa;password=" providerName="System.Data.SqlClient" /> <sqlCacheDependency enabled="true" pollTime="6000"> <databases> <add name="code" connectionStringName="strcode" /> </databases> </sqlCacheDependency> public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert( CacheKey, objObject, dep, System.Web.Caching.Cache.NoAbsoluteExpiration,//从不过期 System.Web.Caching.Cache.NoSlidingExpiration,//禁用可调过期 System.Web.Caching.CacheItemPriority.Default, null); } protected void Page_Load(object sender, EventArgs e) { string CacheKey = "test"; object objModel = GetCache(CacheKey);//从缓存中获取 if (objModel == null)//缓存里没有 { objModel = GetData();//把当前时间进行缓存 if (objModel != null) { //依赖数据库codematic中的P_Product表变化 来更新缓存 System.Web.Caching.SqlCacheDependency dep = new System.Web.Caching.SqlCacheDependency("code", "User"); SetCache(CacheKey, objModel, dep); } } GridView1.DataSource = (DataSet)objModel; GridView1.DataBind(); } private DataSet GetData() { string conString = "data source=127.0.0.1;initial catalog=code;user id=sa;password="; string strSQL = "SELECT * FROM User"; SqlConnection myConnection = new SqlConnection(conString); DataSet ds = new DataSet(); myConnection.Open(); SqlDataAdapter adapter = new SqlDataAdapter(strSQL, myConnection); adapter.Fill(ds, "User"); myConnection.Close(); return ds; } 数据校验问题 请教mschart控件怎么自动宽度? 如何控制Response.Write的位置? 母版页中的链接有延迟的现象 如何引用另外一个网站项目中的usercontrol 一个vs.net的问题 调试程序的时候出现错误 几个简单的问题? 一个郁闷的问题...高手来帮忙解决呀 请问有没有象qq一样的,导航条控件。。。或者还有其他的实现方法吗? VSS打不开sln 求教!如何获取GridView中ItemTemplate中的控件值?
SqlCacheDependency类支持与System.Data.SqlClient.SqlDependency类进行集成。应用程序可创建SqlDependency对象,并通过OnChanged事件处理程序接受通知进行注册。这样,应用程序不仅可以使用Sql server 2005的查询通知机制来监测使用SQL查询结果无效的数据更改,并将缓存对象从缓存中移除,而且还可以轻松获取数据更改通知,以便刷新缓存
<add name="strcode" connectionString="data source=127.0.0.1;initial catalog=code;user id=sa;password=" providerName="System.Data.SqlClient" />
<sqlCacheDependency enabled="true" pollTime="6000">
<databases>
<add name="code" connectionStringName="strcode" />
</databases>
</sqlCacheDependency> public static object GetCache(string CacheKey)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
return objCache[CacheKey];
}
public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Insert(
CacheKey,
objObject,
dep,
System.Web.Caching.Cache.NoAbsoluteExpiration,//从不过期
System.Web.Caching.Cache.NoSlidingExpiration,//禁用可调过期
System.Web.Caching.CacheItemPriority.Default,
null);
}
protected void Page_Load(object sender, EventArgs e)
{
string CacheKey = "test";
object objModel = GetCache(CacheKey);//从缓存中获取
if (objModel == null)//缓存里没有
{
objModel = GetData();//把当前时间进行缓存
if (objModel != null)
{
//依赖数据库codematic中的P_Product表变化 来更新缓存
System.Web.Caching.SqlCacheDependency dep = new System.Web.Caching.SqlCacheDependency("code", "User");
SetCache(CacheKey, objModel, dep);
}
}
GridView1.DataSource = (DataSet)objModel;
GridView1.DataBind();
}
private DataSet GetData()
{
string conString = "data source=127.0.0.1;initial catalog=code;user id=sa;password=";
string strSQL = "SELECT * FROM User";
SqlConnection myConnection = new SqlConnection(conString);
DataSet ds = new DataSet();
myConnection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(strSQL, myConnection);
adapter.Fill(ds, "User");
myConnection.Close();
return ds;
}