我使用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();
}
}
感謝。
你可能需要發佈一些代碼才能得到這個答案。 你如何把它放在緩存中?你正在使用什麼樣的依賴/時間選項? – 2009-11-03 16:52:44
我需要解釋一下,我試圖添加數據集副本或ds本身,但沒有成功。例如複製數據集並將新對象放入緩存中。 – 2009-11-03 19:00:29
我仍然有這個問題,我只是意識到,當我把數據集放入內存時,它失去了列名奇怪。 – 2009-11-09 23:44:42