C# 如何在没有人机交互的情况下在特定时间自动运行程序?

C# 如何在没有人机交互的情况下在特定时间自动运行程序?,c#,sql,C#,Sql,我想检查客户的状态,并在某个特定时间根据状态更新所有公司的员工记录。我在sql代理中成功地实现了这一点。但是我们的老板说,没有一个web主机在共享数据库中提供sql代理。因此,请找到任何其他备用进程来运行它。 所以我创建了一个窗口表单,并在FormLoad事件中编码,如下所示 private void Form1_Load(object sender, EventArgs e) { string connetionString = null;

我想检查客户的状态,并在某个特定时间根据状态更新所有公司的员工记录。我在sql代理中成功地实现了这一点。但是我们的老板说,没有一个web主机在共享数据库中提供sql代理。因此,请找到任何其他备用进程来运行它。 所以我创建了一个窗口表单,并在FormLoad事件中编码,如下所示

private void Form1_Load(object sender, EventArgs e)
        {
            string connetionString = null;
            SqlConnection cnn;
            SqlCommand cmd;
            string sql = null;    
            connetionString = "Data Source=SERVER1;Initial Catalog=crm;User ID=sa;Password=elife@123";
            sql = "AutoCheckExpiry_ForPayment";    
            cnn = new SqlConnection(connetionString);
            try
            {
                cnn.Open();
                cmd = new SqlCommand(sql, cnn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                cnn.Close();               
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can not open connection ! ");
            }                        
        }
然后获取此应用程序的.exe文件并将其附加到任务计划程序中,但它不工作。。 那么,还有其他替代方法吗?

或者在程序中使用一个将连续运行的计时器&检查时间是否匹配,然后执行代码


或者使用windows计划程序。只需将您的脚本安排到windows计划程序中,它将在计划的时间执行您的程序。

对于计时器控制应用程序,必须始终处于运行模式,但我的应用程序不总是处于运行模式。因此,如何使用windows schdeular..我曾经执行过上述无法运行的过程。对于第一种方法,每次都保持流程运行。如果您使用第二种方式,您将依赖windows。因此,无论您在哪里安装软件,都必须配置调度程序。这是教程,我们不能只运行程序而不显示任何窗口吗?代码结束后,只需写“This.close”,表单将永远不会显示。在数据库中创建作业。无需使用应用程序为您运行此服务我无法共享代理。请尽快更改您的密码-: