cache的数据库回调缓存不会失败,一直不变,但AspNet_SqlCacheTablesForChangeNotification表 是有变化的,动作一次就加1代码如下:
web.config配置
</httpModules>
<caching>
<sqlCacheDependency enabled="true" pollTime="500" >
<databases>
<add connectionStringName="gft_esp" name="Sql_CacheDependency"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
代码:aspx.cs
protected void a_query_Click(object sender, EventArgs e)
{ // bangding();
View_value();
}
public void View_value()
{
string[] ds = HttpRuntime.Cache["Key"] as string[];
if (ds != null)
{
Label4.Text = "来自Cache"+ds[0];
}
else
{
num_status();
}
}
public string[] num_status()
{
string[] value = { }; string sql = @"SELECT count(Read_Status) as temp FROM [Mess_Reader] where Read_Status=0"; SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["gft_esp"].ConnectionString);
SqlCommand cmd = new SqlCommand();
try
{
cmd.Connection = conn;
conn.Open();
cmd.CommandText = sql;
SqlDataReader rs = cmd.ExecuteReader();
SqlCacheDependency dependency = new SqlCacheDependency(cmd);//把连接实例cache
List<string> message_content = new List<string>();
while (rs.Read())
{
message_content.Add(rs["temp"].ToString().Trim());
}
rs.Close();
conn.Close();
value = message_content.ToArray();
HttpRuntime.Cache.Insert("Key", value, dependency, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);
}
catch (System.Data.SqlClient.SqlException ex)
{
conn.Close();
}
finally
{
conn.Close(); }
return value;
}请高手过目看看代码有没有错误,
web.config配置
</httpModules>
<caching>
<sqlCacheDependency enabled="true" pollTime="500" >
<databases>
<add connectionStringName="gft_esp" name="Sql_CacheDependency"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
代码:aspx.cs
protected void a_query_Click(object sender, EventArgs e)
{ // bangding();
View_value();
}
public void View_value()
{
string[] ds = HttpRuntime.Cache["Key"] as string[];
if (ds != null)
{
Label4.Text = "来自Cache"+ds[0];
}
else
{
num_status();
}
}
public string[] num_status()
{
string[] value = { }; string sql = @"SELECT count(Read_Status) as temp FROM [Mess_Reader] where Read_Status=0"; SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["gft_esp"].ConnectionString);
SqlCommand cmd = new SqlCommand();
try
{
cmd.Connection = conn;
conn.Open();
cmd.CommandText = sql;
SqlDataReader rs = cmd.ExecuteReader();
SqlCacheDependency dependency = new SqlCacheDependency(cmd);//把连接实例cache
List<string> message_content = new List<string>();
while (rs.Read())
{
message_content.Add(rs["temp"].ToString().Trim());
}
rs.Close();
conn.Close();
value = message_content.ToArray();
HttpRuntime.Cache.Insert("Key", value, dependency, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);
}
catch (System.Data.SqlClient.SqlException ex)
{
conn.Close();
}
finally
{
conn.Close(); }
return value;
}请高手过目看看代码有没有错误,
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货