我看了的,都设置了,就是不好使,cache里面始终没有值
我的sql:select ID,Name,Parentid,Layer from dbo.Tree
@李东deZY: 你要把 SqlCacheDependency 去掉,它有值吗?
@Launcher: 把 SqlCacheDependency 去掉后有值
@李东deZY: 使用依赖的时候, callBack 有被调用吗?
@Launcher: 有callback,callback里面重新访问了一次数据库,就出现死循环了
我的qq号381042937
@李东deZY: 注意缓存依赖使用的 SQL 语句,只能是 SELECT,并且不能包含 TOP,表名前最好加上架构名称(例如 dbo).
void Application_Start(object sender, EventArgs e) { SqlDependency.Start(ConfigurationManager.ConnectionStrings["dbname"].ConnectionString); } void CacheCall() { using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbname"].ConnectionString)) { SqlCommand cmd = new SqlCommand("SELECT C1,C2,C3 FROM dbo.T1", conn); SqlCacheDependency scd = new SqlCacheDependency(cmd); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); HttpRuntime.Cache.Insert("Key", ds, scd, Cache.NoAbsoluteExpiration, TimeSpan.Zero, CacheItemPriority.Normal, (k, v, r) => { // do something System.Diagnostics.Debug.WriteLine(k); }); } }