2009-11-03 41 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

回答