缓存依赖注意
1.表名必须要加dbo.,否则会不缓存每次都会读数据库。
2.如下语句要写在定义Dataset的前面,否则会更新了数据表,缓存还是没失效,显示的旧数据。
System.Web.Caching.SqlCacheDependency sqlcache = new System.Web.Caching.SqlCacheDependency(commad);
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder strSql = new StringBuilder();
//strSql.Append("SELECT [id] ,[value] FROM [dbo].[Test]");
strSql.Append("select ");
strSql.Append(" Name,LoginID,PassWord,status,MobileNo,ItvNo ");
strSql.Append(" FROM dbo.Member ");
this.data.DataSource = GetMember(strSql.ToString());// ExecuteAndCache(strSql.ToString());//
this.data.DataBind();
}
private DataTable GetMember(string strSql)
{
//string key = strSql;// "T1";
if (HttpRuntime.Cache[strSql] == null)
{
using (SqlConnection sqlconn = new SqlConnection(SqlHelp.conn))
{
using (SqlCommand commad = new SqlCommand())
{
System.Web.Caching.SqlCacheDependency sqlcache = new System.Web.Caching.SqlCacheDependency(commad);
commad.CommandType = CommandType.Text;
commad.CommandText = strSql;
commad.Connection = sqlconn;
DataSet ds = new DataSet();
new SqlDataAdapter(commad).Fill(ds);
HttpRuntime.Cache.Insert(strSql, ds, sqlcache);//添加到缓存中
}
}
}
DataSet tds = HttpRuntime.Cache[strSql] as DataSet;
if (tds != null)
return tds.Tables[0];
else
return null;
}
alter database [Test] set enable_broker
select databasepropertyex('[Test]','IsBrokerEnabled')