using System; using System.Collections.Generic; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace CalcAnnualLeave { public class AnnualLeave : TimingTaskBase.TimingTaskBase { private static string connString; static AnnualLeave() { XmlDocument docConfig = new XmlDocument(); docConfig.Load(System.Environment.CurrentDirectory + "/TimingTaskConfig.xml"); XmlNode xnl = docConfig.SelectSingleNode(@"//Task[@ID='1']"); connString = xnl.Attributes["connString"].Value; } public override void Run() { CalcAnnual(); } private static void CalcAnnual() { DateTime dtNow = DateTime.Now; string strSql = @"update dbo.VocationAndJiaBanReport set ThisYearHasNian = ThisYearHasNian + 1 "; SqlConnection conn = new SqlConnection(connString); try { WriteLog("执行开始"); conn.Open(); SqlCommand cmmd = new SqlCommand(strSql, conn); cmmd.ExecuteNonQuery(); WriteLog("ENd"); } catch (Exception e) { WriteLog(e.Message); conn.Close(); conn.Dispose(); } finally { conn.Close(); conn.Dispose(); } } /// /// 写定时任务日志 /// /// private static void WriteLog(string strMsg) { string strFile = @"C:/TimingTaskLog.log"; object objLock = new object(); if (!File.Exists(strFile)) { File.Create(strFile); } lock (objLock) { StreamWriter sw = new StreamWriter(strFile, true); sw.WriteLine(DateTime.Now.ToString()); sw.WriteLine("message text:" + strMsg); sw.Close(); } } } }