代码public void CacheIn()
{
//先更新数据,再重新录入cache,重建连接
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
string ConnStr = "C:/Inetpub/wwwroot/WebApplication1/Data/test.mdb";
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= "+ConnStr;
conn.Open();
//数据库连接串
//更新数据
System.Data.OleDb.OleDbCommand zfcmd=new System.Data.OleDb.OleDbCommand("update zfuser set Metal=300",conn);
zfcmd.ExecuteNonQuery();
//更新读取
System.Data.OleDb.OleDbDataAdapter zfadp=new System.Data.OleDb.OleDbDataAdapter("select * from star",conn);
DataTable zfdatatable=new DataTable(); //datatable类型,为搜索方便而设立
zfadp.Fill(zfdatatable);
//重建缓存,10分钟后过期
System.Web.HttpContext.Current.Cache.Insert("Book",zfdatatable,null,DateTime.Now.AddMinutes(1),Cache.NoSlidingExpiration,CacheItemPriority.Default,new CacheItemRemovedCallback(RemovedProducts));
//get data
if(conn.State != ConnectionState.Closed)
conn.Close();
}
public static void RemovedProducts(string k, Object v, CacheItemRemovedReason r)
{
//先更新数据,再重新录入cache,重建连接
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
string ConnStr = "C:/Inetpub/wwwroot/WebApplication1/Data/test.mdb";
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= "+ConnStr;
conn.Open();
//数据库连接串
//更新数据
System.Data.OleDb.OleDbCommand zfcmd=new System.Data.OleDb.OleDbCommand("update zfuser set metal=500",conn);
zfcmd.ExecuteNonQuery();
//更新读取
System.Data.OleDb.OleDbDataAdapter zfadp=new System.Data.OleDb.OleDbDataAdapter("select * from star",conn);
DataTable zfdatatable=new DataTable(); //datatable类型,为搜索方便而设立
zfadp.Fill(zfdatatable);
//重建缓存,10分钟后过期
System.Web.HttpContext.Current.Cache.Insert("Book",zfdatatable,null,DateTime.Now.AddMinutes(1),Cache.NoSlidingExpiration,CacheItemPriority.Default,new CacheItemRemovedCallback(RemovedProducts));
//get data
if(conn.State != ConnectionState.Closed)
conn.Close();
}cachein用按钮触发.然后无论等多久时间,都没有进行回调(查数据库里数据除了第一次调用有变化之后都没有变化),请问是什么原因呢?谢谢
{
//先更新数据,再重新录入cache,重建连接
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
string ConnStr = "C:/Inetpub/wwwroot/WebApplication1/Data/test.mdb";
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= "+ConnStr;
conn.Open();
//数据库连接串
//更新数据
System.Data.OleDb.OleDbCommand zfcmd=new System.Data.OleDb.OleDbCommand("update zfuser set Metal=300",conn);
zfcmd.ExecuteNonQuery();
//更新读取
System.Data.OleDb.OleDbDataAdapter zfadp=new System.Data.OleDb.OleDbDataAdapter("select * from star",conn);
DataTable zfdatatable=new DataTable(); //datatable类型,为搜索方便而设立
zfadp.Fill(zfdatatable);
//重建缓存,10分钟后过期
System.Web.HttpContext.Current.Cache.Insert("Book",zfdatatable,null,DateTime.Now.AddMinutes(1),Cache.NoSlidingExpiration,CacheItemPriority.Default,new CacheItemRemovedCallback(RemovedProducts));
//get data
if(conn.State != ConnectionState.Closed)
conn.Close();
}
public static void RemovedProducts(string k, Object v, CacheItemRemovedReason r)
{
//先更新数据,再重新录入cache,重建连接
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
string ConnStr = "C:/Inetpub/wwwroot/WebApplication1/Data/test.mdb";
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= "+ConnStr;
conn.Open();
//数据库连接串
//更新数据
System.Data.OleDb.OleDbCommand zfcmd=new System.Data.OleDb.OleDbCommand("update zfuser set metal=500",conn);
zfcmd.ExecuteNonQuery();
//更新读取
System.Data.OleDb.OleDbDataAdapter zfadp=new System.Data.OleDb.OleDbDataAdapter("select * from star",conn);
DataTable zfdatatable=new DataTable(); //datatable类型,为搜索方便而设立
zfadp.Fill(zfdatatable);
//重建缓存,10分钟后过期
System.Web.HttpContext.Current.Cache.Insert("Book",zfdatatable,null,DateTime.Now.AddMinutes(1),Cache.NoSlidingExpiration,CacheItemPriority.Default,new CacheItemRemovedCallback(RemovedProducts));
//get data
if(conn.State != ConnectionState.Closed)
conn.Close();
}cachein用按钮触发.然后无论等多久时间,都没有进行回调(查数据库里数据除了第一次调用有变化之后都没有变化),请问是什么原因呢?谢谢
解决方案 »
- 请教一个貌似基础的问题
- rtf格式文件转换为bmp格式文件
- 谁有 ListBox 点击: < , << , > , >> 按钮 移动到右面 List Box 的详细例子?
- 如何让CrystalReport从WebService中读取数据并打印出来?
- 树型显示出错!!!初学者求救!!!
- 怎样把12345分钟表示成hhh:mm:ss??
- 如何向ComboBox中填充值?
- 求解C#一个线程问题
- vs2010创建项目选择不了路径怎么办呢
- 如何用C#写计算器啊??最好给个实例!!
- web Service使用Timer组件定时执行的程序不停重入,打乱执行步骤,怎样解决?
- 这样的sql语句有错嘛?没错那么这样调用对嘛?
一般的做法是在aspx的Page_Load里(而不是Button_Click)先判断Cache是否存在,如果不存在(或已过期)就重建。回调函数主要用来在Cache失效时处理一下与此Cache相关的数据。