写windows服务日志.net4.5.2定时修改数据库中某些参数的步骤

ASP.NET教程 2025-08-23

目录

  • 步骤:
    • 1、新建项目,创建windows 服务
    • 2、下载日志程序包 NLog
    • 3、在App.config中配置日志包NLog
    • 4、Report_Print.cs
    • 5、在 Report_Print.cs 界面内,右键添加安装程序
    • 6、配置ServiceInstaller1
    • 7、配置serviceProcessInstaller1
    • 8、右键,编译程序
    • 9、安装程序
      • 9.1卸载程序
    • 10、安装成功

    环境:

    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.nlo**g-pro*ject.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 Id=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:vs2015studyReport_printReport_printbinDebugReport_print.exe"
    sc start Report_Print 

    9.1卸载程序

    sc stop Report_Print
    sc delete Report_Print

    10、安装成功

    到此这篇关于写windows服务日志.net4.5.2定时修改数据库中某些参数的步骤的文章就介绍到这了,更多相关.net4.5.2定时修改数据库参数内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

    您可能感兴趣的文章:
    • C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例
    • c#数据绑定之向查询中添加参数(.Net连接外部数据库)
    • C#和asp.net中链接数据库中参数的几种传递方法实例代码