C# 控制asp.net网站自动更新数据代码

mb78的头像 mb78 40 2015-05-02 16:05 0

 基本信息

× 1   

浏览数: 1697

分享时间: 2 年 前

添加更新数据在类中写好,然后在Global.asax里面调用这个类,设置 TestTimer.Start(0, 30000);为1分钟
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading;
  
namespace OKGO.Web
{
    public class TestTimer
    {
        //定义变量n,Timer执行一次n自动加一,根据n来控制定时执行的时间,来解决Timer只能定时一分钟的时间范围
         static int n = 0;
        //TimerCallback 委托,GlobalTimer_ToDo表示要执行的方法
         public static Timer GlobalTimer = new Timer(new TimerCallback(GlobalTimer_ToDo), null, Timeout.Infinite, Timeout.Infinite);
   
         /*也可以直接定时
         GlobalTimer.Interval = 10;
                 GlobalTimer.Enabled = true;
                 GlobalTimerAutoReset = true;*/
   
         static void GlobalTimer_ToDo(object obj)
         {
             n = n + 1;
            if (n == 2)
             {
                //***这里写你要定时执行的程序
                 System.Data.SqlClient.SqlDataReader dataReader = null;
                 try
                 {
                     //is_549067
                      System.IO.StreamReader sr = null;
                     string str=string.Empty;
                     dataReader = OKGO.DataAccess.SQLServer.ChannelProvider.Provider.GetAllRoleName();
                             while (dataReader.Read() && dataReader.HasRows)
                             {
                                      System.Net.WebRequest temp = System.Net.WebRequest.Create("http://assist57.ddt.iugame.cn/other/getUserRegDateByUid?uid=is_"+dataReader["UserName"]+"");
            //读取
            try
            {
                System.Net.WebResponse myTemp = temp.GetResponse();
                sr = new System.IO.StreamReader(myTemp.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
                str = sr.ReadToEnd();
                System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
                xmldoc.LoadXml(str);
                System.Xml.XmlNode nodes = xmldoc.SelectSingleNode("Result");
                string Rolename = nodes.Attributes[2].Value;//角色名称
                string RolenameTime = nodes.Attributes[3].Value;//角色创建时间
                if (Rolename == "")
                    continue;
  
  
                OKGO.DataAccess.SQLServer.ChannelProvider.Provider.GetUpdateRoleName(int.Parse(dataReader["UserName"].ToString()), Rolename, RolenameTime);
                                     sr.Close();
                                     sr.Dispose();
                                     sr.Close();
                                 }
                                 catch (Exception ex)
                                 {
                                     throw ex;
                                 } 
                                  
                             }
                 }
                 catch (Exception exc)
                 {
                     if (dataReader != null)
                     {
                         dataReader.Close();
                         dataReader.Dispose();
                     }
                     throw exc;
                 }
                 finally
                 {
                     if (dataReader != null)
                     {
                         dataReader.Close();
                         dataReader.Dispose();
                     }
                     n = 0;
                 }
  
                   
             }
         }
   
         public static void Start(long a, long b)
         {
             //Timer.Change(Int32, Int32)方法用来更改计时器的启动时间和方法调用之间的间隔,用 32 位有符号整数度量时间间隔
             GlobalTimer.Change(a, b);
         }
   
         public static void Stop()
        {
             //Timeout.Infinite是用于指定无限长等待时间的常数
             GlobalTimer.Change(Timeout.Infinite, Timeout.Infinite);
        }
    }
}

还没有人评论,赶快来抢沙发吧!