首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于设置sesson定时覆盖的有关问题?

2014-01-05 
关于设置sesson定时覆盖的问题??如题,我十分钟获取一个值,然后把值传入sesson,把这段代码放在site.master

关于设置sesson定时覆盖的问题??
如题,我十分钟获取一个值,然后把值传入sesson,把这段代码放在site.master里面,能不能实现功能?


protected void Page_Load(object sender, EventArgs e)
        {
            string qh = DateTime.Now.ToString("yyyyMMdd");
            DateTime dt1 = DateTime.Now;
            int huor = Convert.ToInt32(dt1.Hour.ToString());
            int minute = Convert.ToInt32(dt1.Minute.ToString());
            int n = (huor * 60 + minute) / 10;
            string n3 = n.ToString();
            string qishu;
            if (n3.Length < 3)
            {
                qishu = qh + "0" + n3;
            }
            else
            {
                qishu = qh + n3;
            }
            Session["qishu"] = qishu;
        }

[解决办法]
这种情况应该在global.asax的Application_BeginRequest事件中比较合适,你上面的代码问题多多,比如这个:int huor = Convert.ToInt32(dt1.Hour.ToString()); dt1.Hour本来就是int类型,何必把它转换成string然后再用Convert.ToInt32转成int??而且你判断是否间隔了十分钟的代码实在是看不懂。
[解决办法]

 public class Global : System.Web.HttpApplication
    {
        public static Timer gtimer = null;
        void Application_Start(object sender, EventArgs e)
        {
            gtimer = new Timer(300000);
            gtimer.Elapsed += new System.Timers.ElapsedEventHandler(this.TimerEventFunction);
            gtimer.AutoReset = true;
            gtimer.Enabled = true;
        }
        private void TimerEventFunction(object sender, ElapsedEventArgs e)
        {
            TestWeb.Class.StockInfoBLL sib = new Class.StockInfoBLL();
            DataTable dtTop = sib.GetStockTop();
            DataTable dtAsc = sib.GetStockAsc();
            if (dtTop.Rows.Count == 0)
            {
                dtTop = (DataTable)System.Web.HttpContext.Current.Cache["StockTop"];
            }
            if (dtAsc.Rows.Count == 0)
            {
                dtAsc = (DataTable)System.Web.HttpContext.Current.Cache["StockTop"];
            }
        }

        void Application_End(object sender, EventArgs e)
        {


            //  在应用程序关闭时运行的代码

        }

        void Application_Error(object sender, EventArgs e)
        {
            // 在出现未处理的错误时运行的代码

        }

        void Session_Start(object sender, EventArgs e)
        {
            // 在新会话启动时运行的代码

        }

        void Session_End(object sender, EventArgs e)
        {
            // 在会话结束时运行的代码。 
            // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
            // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
            // 或 SQLServer,则不会引发该事件。

        }

    }


每五分钟缓存一次数据,楼主你可以借签一下!

热点排行