C# 控制asp.net網站自動更新數據代碼
添加更新數據在類中寫好,然后在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); } }
}</pre>
本文由用戶 mb78 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!