写windows服务日志.NET4.5.2定时修改数据库参数的步骤

文章主要介绍了写windows服务日志.net4.5.2定时修改数据库中某些参数的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧。

环境:

  • 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 version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
  </configSections>
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="file" xsi:type="File" fileName="${basedir}/Logs/${date:format=yyyy-MM-dd}/${date:format=yyyy-MM-dd}.txt" layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${message} ${exception}"/>
    </targets>
    <rules>
      <logger name="*" minlevel="Debug" writeTo="file"/>
    </rules>
  </nlog>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

4、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 sa;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_Print

10、安装成功

到此这篇关于写windows服务日志.net4.5.2定时修改数据库中某些参数的步骤的文章就介绍到这了,更多相关.net4.5.2定时修改数据库参数内容请继续浏览下面的相关文章!

声明:本文来自互联网或用户投稿,该文观点仅代表作者本人,不代表本站立场。文章及其配图仅供学习和交流之用,版权归原作者所有,如有内容侵权或者其他违规问题,请联系本站处理。

相关文章