2009-11-03 58 views
1

我使用IIS7和C#和MySQL。我用sql关键字将一些对象放入了asp.net缓存系统。它具有非常简单的逻辑。使用给定的sql关键字将选定的数据集输入到缓存中。失去我的对象在缓存

这里是问题所在。当我通过www.abc.com致电我的网站时,它正常工作。而在第二次点击后在abc.com冲浪时,首先填充的数据集变成空数据集,我的网站开始显示空列表。

我试着改变键到一些静态字和复制数据集,然后缓存它们,但目前为止没有成功。

我希望我解释得很好。 http://beta.mpazari.com是地方,如果你喜欢看到,并在红框下拉列表应该已填充数据的列表。

这里是我的填充功能提前

public void Fill(ref DataSet ds, string sql, DateTime? cacheTime, string key) 
    { 
     if (key == null) key = sql; 
     if (cacheTime == null) cacheTime = DateTime.Now.AddMinutes(generalCacheExpiarionTimeInMinutes); 
     if (cache[key] != null) { ds = (DataSet)cache[key]; return; } 
     MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["motorConnectionString"].ConnectionString); 
     try 
     { 
      conn.Open(); 
      MySqlDataAdapter myda = new MySqlDataAdapter(sql, conn); 
      if (ds == null) ds = new DataSet(); 

      ds.Clear(); 
      myda.Fill(ds); 
      cache.Insert(key, ds.Copy(), null, cacheTime.Value, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.NotRemovable,null); 
     } 
     finally 
     { 
      conn.Close(); 
     } 
    } 

感谢。

+0

你可能需要发布一些代码才能得到这个答案。 你如何把它放在缓存中?你正在使用什么样的依赖/时间选项? – 2009-11-03 16:52:44

+0

我需要解释一下,我试图添加数据集副本或ds本身,但没有成功。例如复制数据集并将新对象放入缓存中。 – 2009-11-03 19:00:29

+0

我仍然有这个问题,我只是意识到,当我把数据集放入内存时,它失去了列名奇怪。 – 2009-11-09 23:44:42

回答