/// <summary>
InBlock.gif         /// 建立临时数据目录
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="pathURL"></param>
InBlock.gif         private static void GreatUserpath( string pathURL)
InBlock.gif        {
InBlock.gif             string path = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + pathURL + "/");
InBlock.gif             if (Directory.Exists(path) == false)
InBlock.gif            {
InBlock.gif                Directory.CreateDirectory(path);
InBlock.gif            }
InBlock.gif        }
InBlock.gif
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 获得用户临时存储数据
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="p_UserID"></param>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <returns></returns>
InBlock.gif         public static System.Data.DataSet GetUsertempdata( int p_UserID, string dataName, int pageIndex)
InBlock.gif        {
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + p_UserID.ToString() + "/"+dataName+ "/"+pageIndex.ToString()+ ".asp");
InBlock.gif            GreatUserpath(p_UserID.ToString());
InBlock.gif            GreatUserpath(p_UserID.ToString()+ "/"+dataName);
InBlock.gif             if (File.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                DataSet ds = new DataSet();
InBlock.gif                ds.ReadXml(filePath);
InBlock.gif                 return ds;
InBlock.gif            }
InBlock.gif             else
InBlock.gif            {
InBlock.gif                 return null;
InBlock.gif            }
InBlock.gif        }
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 获得共有临时存储数据
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <returns></returns>
InBlock.gif         public static System.Data.DataSet GetCommontempdata( string dataName, int pageIndex)
InBlock.gif        {
InBlock.gif
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + "Common/"+ dataName + "/" + pageIndex.ToString() + ".asp");
InBlock.gif            GreatUserpath( "Common");
InBlock.gif            GreatUserpath( "Common" + "/" + dataName);
InBlock.gif             if (File.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                DataSet ds = new DataSet();
InBlock.gif                ds.ReadXml(filePath);
InBlock.gif                 return ds;
InBlock.gif            }
InBlock.gif             else
InBlock.gif            {
InBlock.gif                 return null;
InBlock.gif            }
InBlock.gif        }
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 设置用户临时数据
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="p_UserID"></param>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <param name="data"></param>
InBlock.gif         public static void SetUsertempdata( int p_UserID, string dataName, int pageIndex,DataSet data)
InBlock.gif        {
InBlock.gif            GreatUserpath(p_UserID.ToString());
InBlock.gif            GreatUserpath(p_UserID.ToString() + "/" + dataName);
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + p_UserID.ToString() + "/" + dataName + "/" + pageIndex.ToString() + ".asp");
InBlock.gif             if (File.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                File.Delete(filePath);
InBlock.gif            }
InBlock.gif             if (data != null & data.Tables.Count > 0)
InBlock.gif            {
InBlock.gif                 if (data.Tables[0].Rows.Count > 0)
InBlock.gif                {
InBlock.gif                    XmlDataDocument doc = new XmlDataDocument(data);
InBlock.gif                    doc.Save(filePath);
InBlock.gif                }
InBlock.gif            }
InBlock.gif            
InBlock.gif             //return ds;
InBlock.gif        }
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 设置共有临时数据
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <param name="data"></param>
InBlock.gif         public static void SetCommontempdata( string dataName, int pageIndex,DataSet data)
InBlock.gif        {
InBlock.gif            GreatUserpath( "Common");
InBlock.gif            GreatUserpath( "Common"+ "/"+dataName);
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + "Common" + "/" + dataName + "/" + pageIndex.ToString() + ".asp");
InBlock.gif            
InBlock.gif             if (File.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                File.Delete(filePath);
InBlock.gif            }
InBlock.gif             if (data != null & data.Tables.Count>0)
InBlock.gif            {
InBlock.gif                 if (data.Tables[0].Rows.Count > 0)
InBlock.gif                {
InBlock.gif                    XmlDataDocument doc = new XmlDataDocument(data);
InBlock.gif                    doc.Save(filePath);
InBlock.gif                }
InBlock.gif            }
InBlock.gif        }
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 删除用户临时数据*数据库有变更时调用
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="p_UserID"></param>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <param name="data"></param>
InBlock.gif         public static void DelUsertempdata( int p_UserID, string dataName)
InBlock.gif        {
InBlock.gif            GreatUserpath(p_UserID.ToString());
InBlock.gif             //GreatUserpath(p_UserID.ToString() + "/" + dataName);
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + p_UserID.ToString() + "/" + dataName + "/");
InBlock.gif             if (System.IO.Directory.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                 //File.Delete(filePath);
InBlock.gif                Directory.Delete(filePath, true);
InBlock.gif            }
InBlock.gif        }
InBlock.gif
InBlock.gif         /// <summary>
InBlock.gif         /// 删除共有临时数据*数据库有变更时调用
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="dataName"></param>
InBlock.gif         /// <param name="pageIndex"></param>
InBlock.gif         /// <param name="data"></param>
InBlock.gif         public static void SetCommontempdata( string dataName)
InBlock.gif        {
InBlock.gif            GreatUserpath( "Common");
InBlock.gif             string filePath = HttpContext.Current.Server.MapPath(YOYOConfiguration.TempDataPath + "Common" + "/" + dataName + "/" );
InBlock.gif             if (System.IO.Directory.Exists(filePath) == true)
InBlock.gif            {
InBlock.gif                 //File.Delete(filePath);
InBlock.gif                Directory.Delete(filePath, true);
InBlock.gif            }
InBlock.gif        }
InBlock.gif
 
调用方法:
/// <summary>
InBlock.gif         /// 通过用户ID 获取英雄集
InBlock.gif         /// </summary>
InBlock.gif         /// <param name="p_UserID">用户ID</param>
InBlock.gif         /// <returns></returns>
InBlock.gif         public DataSet GetHerosByUserID( int p_UserID)
InBlock.gif        {
InBlock.gif            DataSet ds = new DataSet();
InBlock.gif            ds = GetUsertempdata(p_UserID, "heros", 0);
InBlock.gif             if (ds == null)
InBlock.gif            {
InBlock.gif                 string procName = "UP_heroinfo_GetList";
InBlock.gif
InBlock.gif                SqlDataAccess sqlhelper = new SqlDataAccess(YOYOConfiguration.ConnectionString);
InBlock.gif                 object[] parameters = new object[] { p_UserID };
InBlock.gif                SqlResult resu = new SqlResult();
InBlock.gif                 try
InBlock.gif                {
InBlock.gif                    resu = sqlhelper.CallProcedure(procName, parameters);
InBlock.gif                    ds = resu.dataSet;
InBlock.gif                }
InBlock.gif                 catch (System.Exception ex)
InBlock.gif                {
InBlock.gif                    YOYOWorld.Log.LogWritor.Write(ex.Source, ex.Message, EventLogEntryType.Error);
InBlock.gif                }
InBlock.gif                YOYOWorld.Common.Tool.SetUsertempdata(p_UserID, "heros", 0, ds);
InBlock.gif            }
InBlock.gif             return ds;
InBlock.gif        }
InBlock.gif
 
当数据库更改时调用
DEL方法清除缓存数据
 
还有需要改进的地方,不过也是一种减少数据库压力的一种好方法