成都手机网站建设报价表,安徽品质网站建设创新,下载网站专用空间,新开发网站环境#xff1a; windows 11 Visual Studio 2015 .net 4.5.2 SQL Server 目的#xff1a; 定时修改数据库中某些参数的值 定时修改24小时内#xff0c;SQL数据库中#xff0c;表JD_Reports 内#xff0c;如果部门是‘体检科#xff0c;设置打印类型为 1
可以打印。步骤 windows 11 Visual Studio 2015 .net 4.5.2 SQL Server 目的 定时修改数据库中某些参数的值 定时修改24小时内SQL数据库中表JD_Reports 内如果部门是‘体检科设置打印类型为 1
可以打印。步骤
1、新建项目创建windows 服务 2、下载日志程序包 NLog 3、在App.config中配置日志包NLog
?xml version1.0 encodingutf-8 ?
configurationconfigSectionssection namenlog typeNLog.Config.ConfigSectionHandler, NLog//configSectionsnlog xmlnshttp://www.nlog-project.org/schemas/NLog.xsd xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancetargetstarget namefile xsi:typeFile fileName${basedir}/Logs/${date:formatyyyy-MM-dd}/${date:formatyyyy-MM-dd}.txt layout[${date:formatyyyy-MM-dd HH\:mm\:ss}][${level}] ${message} ${exception}//targetsruleslogger name* minlevelDebug writeTofile//rules/nlogstartupsupportedRuntime versionv4.0 sku.NETFramework,Versionv4.5.2 //startup
/configuration4、Report_Print.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Timers;
using NLog; // 引入 NLog 命名空间用于日志记录namespace Report_print
{public partial class Report_Print : ServiceBase{private Timer _timer;private readonly string _connectionString Data Source.;Initial Catalog【自己数据库】;User Idsa;Password【自己的密码】;;// 创建一个静态日志记录器实例用于在服务中记录日志private static readonly Logger Log LogManager.GetCurrentClassLogger();public Report_Print(){InitializeComponent();// 设置服务每5分钟检查一次_timer new Timer(5 * 60 * 1000); // 5分钟_timer.Elapsed TimerElapsed;}protected override void OnStart(string[] args){// 服务启动时记录日志Log.Debug(开始执行);_timer.Start();// 启动时立即执行一次UpdatePrintType();}protected override void OnStop(){_timer.Stop();// 服务启动时记录日志Log.Debug(服务停止执行);}private void TimerElapsed(object sender, ElapsedEventArgs e){UpdatePrintType();}private void UpdatePrintType(){try{using (SqlConnection conn new SqlConnection(_connectionString)){conn.Open();string sql UPDATE JD_Reports SET PrintType 1 WHERE Depart 体检科 AND CheckTime DATEADD(HOUR, -24, GETDATE())AND (PrintType IS NULL OR PrintType ! 1);using (SqlCommand cmd new SqlCommand(sql, conn)){int rowsAffected cmd.ExecuteNonQuery();Log.Debug(写入日志成功: rowsAffected.ToString());// 这里可以添加日志记录受影响的行数}}}catch (Exception ex){// 这里应该添加适当的错误日志记录// 例如使用 EventLog 或其他日志框架}}}
}
5、在 Report_Print.cs 界面内右键添加安装程序 6、配置ServiceInstaller1 7、配置serviceProcessInstaller1 8、右键编译程序
完成
9、安装程序
sc create Report_Print binPath E:\vs2015\study\Report_print\Report_print\bin\Debug\Report_print.exe
sc start Report_Print 9.1卸载程序
sc stop Report_Print
sc delete Report_Print10、安装成功