问题描述
protectedvoidPage_Load(objectsender,EventArgse){stringstrsn="DataSource=OSTP002;InitialCatalog=MSPetShop4;UserID=sa;Password=sql";SqlDependency.Start(strsn);if(!Page.IsPostBack){DataSetds=newDataSet();if(Cache["ds"]==null){SqlConnectionsn=newSqlConnection(strsn);SqlCommandsc=newSqlCommand("selectItemId,ProductId,ListPricefromdbo.Item",sn);SqlDataAdaptersda=newSqlDataAdapter(sc);sda.Fill(ds);SqlCacheDependencyscd=newSqlCacheDependency(sc);Cache.Insert("ds",ds,scd);Response.Write("数据过期,重新读取数据");}else{ds=(DataSet)Cache["ds"];Response.Write("缓存读取");}GridView1.DataSource=ds;GridView1.DataBind();}}当我在05数据库修改表数据后缓存不过期,请高手指点
解决方案
解决方案二:
你这个条件就第一次的时候不成立if(Cache["ds"]==null)接下去不是都不为空对象么
解决方案三:
缓存依赖有几种:SQL依赖文件依赖绝对时间依赖你可以使用其他依赖,或者混合依赖
解决方案四:
顶一下
解决方案五:
该回复于2007-12-04 11:18:59被版主删除
解决方案六:
SqlCacheDependencyDatabaseconnectionStringName必需的String属性。为数据库设置连接字符串名称。在connectionStrings元素(ASP.NET设置架构)配置节中引用连接字符串。name必需的String属性。要添加到配置集合中的SqlCacheDependencyDatabase对象的名称。此名称用作@OutputCache指令上SqlDependency属性的一部分。pollTime可选的Int32属性。设置SqlCacheDependency轮询数据库表以查看是否发生更改的频率(以毫秒计算)。父元素元素说明configuration公共语言运行库和.NETFramework应用程序所使用的每个配置文件中均需要的根元素。system.web指定配置文件中ASP.NET配置设置的根元素。包含各种配置元素,这些配置元素配置ASP.NETWeb应用程序并控制这些应用程序的行为方式。caching为Web应用程序配置缓存设置。sqlCacheDependency定义SqlCacheDependency类使用的设置。databases包含一个或多个可以由SqlCacheDependency使用的命名的SQL连接。------------------------------------------------------------总结:需要配置连接的数据库和数据对象还有WebConfig