每月定期打电话

本文关键字:打电话 | 更新日期: 2023-09-27 18:16:16

对于c#中有数据库的应用程序,我需要每个月只调用一次函数(在指定的一天)。有必要检查应用程序的每次启动,如果在数据库中注册的定义日期已经是本月,如果是,则不要再次调用该方法。最好的解决方法是什么?保存月份和年份在数据库中,并检查是否实际日期>比数据库中的值?

有更简单的方法吗?

编辑1:

如果我尝试在Windows任务调度程序中这样做,我如何与c#联系?我的方法是Sql-Insert-Statement,必须在每个月的同一天执行一次。

每月定期打电话

使用SQL Server代理并设置循环作业。

如果没有这个选项,您可以使用windows任务调度程序来执行sqlcmd脚本。

计划任务、windows服务或sql server代理会更好(如果您有可用的服务器)。

如果做不到这一点,并且假设函数没有在特定的一天运行,那么上面的解决方案似乎很好。

如果函数必须在1号运行,你能指望你的应用程序在那个时候是"开"的吗?

编辑:

所以…你在某个文件夹中有一个带有MDF的c#应用程序。您有一个必须在每月1日运行的插入。

我会在有应用程序的机器上创建一个计划任务。该任务将调用另一个(微小的)c#程序(.exe)命令,该命令有一个连接字符串到您的db*。这个应用程序每月被调用一次,并执行插入操作。

* Driver={SQL Native Client};Server=.'SQLExpress;AttachDbFilename=c:'asd'qwe'mydbfile.mdf; Database=dbname;Trusted_Connection=Yes

对于这样具体的事情,为什么不直接创建一个计划任务来调用您的应用程序。

您可以按照建议将数据保存在数据库中,然后编写一些可以通过Windows Scheduler调用的内容。我相信其他人会提供其他方法。

我遇到了和你一样的问题。我的解决方案如下:将此操作放在Main()中以确保每次都调用此方法,并判断DateTime。现在是每个月的第一天,如果是的话,做点你的生意吧。

我的英语很差