Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在15天后自动更新状态?_C#_Mysql - Fatal编程技术网

C# 如何在15天后自动更新状态?

C# 如何在15天后自动更新状态?,c#,mysql,C#,Mysql,我在MySQL表中有一个日期和状态列。当前post状态为=已发送/已接收。我想更改的所有状态=15天后自动中止 查询: if (txtrecdate.Text == "" && ddlstatus.SelectedItem.Text != "Completed") { queryStr = "update barter_proposals set website_a=?web_a,email_id=?email,email_id2=?email2,e

我在MySQL表中有一个日期和状态列。当前post状态为=已发送/已接收。我想更改的所有状态=15天后自动中止

查询:

 if (txtrecdate.Text == "" && ddlstatus.SelectedItem.Text != "Completed")
     {
         queryStr = "update barter_proposals set website_a=?web_a,email_id=?email,email_id2=?email2,email_id3=?email3,contact_name=?cname,proposal_status=?status,reason=?rsn," +
              "comment1=?com1 ,agreement=?agreement,agrmt_filename=?agrmt_filename,comment2=?com2,comment3=?com3,lifespan_date=?lpdate where pro_id=?pro_id";
     }
我在谷歌上搜索了一下,找到了这个解决方案:

UPDATE table SET status = "Aborted" where date=DATE_ADD(date, INTERVAL 15 DAY) 

如何在我的更新查询中应用此功能?有没有其他方法可以在15天后自动更改状态?

查看MySQL事件。首先,您需要在MySQL端打开事件调度器

然后创建事件

delimiter $$

CREATE EVENT update_table_statuses
    ON SCHEDULE
      EVERY 1 DAY STARTS '2018-03-22 23:00:00'
    DO
      BEGIN
        UPDATE table SET status = "Aborted" where date=DATE_ADD(date, INTERVAL 15 DAY);
      END $$

delimiter ;

事件将每天执行一次

查看MySQL事件。首先,您需要在MySQL端打开事件调度器

然后创建事件

delimiter $$

CREATE EVENT update_table_statuses
    ON SCHEDULE
      EVERY 1 DAY STARTS '2018-03-22 23:00:00'
    DO
      BEGIN
        UPDATE table SET status = "Aborted" where date=DATE_ADD(date, INTERVAL 15 DAY);
      END $$

delimiter ;

事件将每天执行一次

编写sql作业并每天运行。检查自sysdate起15天的日期,对于此类数据,将状态更新为“已中止”。如果您不希望在sql中这样做,请在windows服务或azure web作业或任务计划程序中这样做。你也可以看看Hangfire,如果你想在“C#”级别这样做,你有几个选项,即创建服务,在时间到来时执行你的代码,或者使用Windows任务调度程序。或者你也可以创建一个函数,如果用户登录/访问系统,该函数将检查日期。如果日期超过15天,则更新状态,如果不是,则不执行任何操作。编写sql作业并每天运行。检查自sysdate起15天的日期,对于此类数据,将状态更新为“已中止”。如果您不希望在sql中这样做,请在windows服务或azure web作业或任务计划程序中这样做。你也可以看看Hangfire,如果你想在“C#”级别这样做,你有几个选项,即创建服务,在时间到来时执行你的代码,或者使用Windows任务调度程序。或者你也可以创建一个函数,如果用户登录/访问系统,该函数将检查日期。如果日期超过15天,则更新状态,如果没有,则什么也不做。我不知道条件在哪里。它将做什么?date=date\u ADD(日期,间隔15天)嘿,事件内的查询是从您的问题复制的。也许你的意思是
date=date\u sub(now(),interval 15 day)
但谁知道syup@alexey…实际上我正在live server上进行更改…所以我只是想确认一下,该条件是否会在15天后更新状态。你的原始条件不会做任何事情,因为它总是错误的,上面的一个应该可以做到这一点。另外,我会用
替换
=
,我不知道条件在哪里。它会做什么?date=date\u ADD(日期,间隔15天)嘿,事件内的查询是从您的问题复制的。也许你的意思是
date=date\u sub(now(),interval 15 day)
但谁知道syup@alexey…实际上我正在live server上进行更改…所以我只是想确认一下,该条件是否会在15天后更新状态。你的原始条件不会做任何事情,因为它总是错误的,上面的一个应该可以做到这一点。我还将用