Функции вызова регулярно каждый месяц - PullRequest
0 голосов
/ 01 декабря 2011

Для приложения с базой данных в C # мне нужно вызывать функцию каждый месяц только один раз (в определенный день). При каждом запуске приложения необходимо проверять, был ли определенный день, который зарегистрирован в базе данных, уже в этом месяце и, если это так, не вызывать метод снова. Какой будет лучший способ решить? Сохранить месяц и год в базе данных тоже и проверить, если фактическая дата>, чем значения в базе данных?

Есть ли более простой способ?

РЕДАКТИРОВАТЬ 1:

Если я попытаюсь сделать это с помощью планировщика задач Windows, как я могу связать это с C #? Мой метод - Sql-Insert-Statement, который должен выполняться каждый месяц один раз в один и тот же день.

Ответы [ 5 ]

3 голосов
/ 01 декабря 2011

Используйте Агент SQL Server и настройте повторяющееся задание .

Если это не вариант, вы можете использовать планировщик задач Windows для выполнения сценария sqlcmd .

1 голос
/ 01 декабря 2011

Лучше было бы запланированное задание, служба Windows или агент сервера sql (если у вас есть доступный сервер).

Если этого не сделать - и при условии, что функция не имеет длязапустить в определенный день, тогда ваше решение, представленное выше, выглядит нормально.

Если функция должна работать 1-го числа, можете ли вы рассчитывать, что ваше приложение будет «включено» в это время?

edit: итак .... у вас есть какое-то приложение на c # с mdf в папке где-то.У вас есть вставка, которая должна быть запущена 1-го числа месяца.

Я бы создал запланированное задание на компьютере, на котором установлено приложение.Задача будет вызывать другую (крошечную) команду программы C # (.exe), которая имеет строку подключения к вашей базе данных *.Это приложение вызывается раз в месяц и выполняет вставку.

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

1 голос
/ 01 декабря 2011

Для чего-то особенного, например, почему бы просто не создать запланированное задание для вызова вашего приложения.

0 голосов
/ 14 мая 2018

Я отвечаю на тот же вопрос, что и вы. Мое решение следующее: Поместите это действие в Main (), чтобы каждый раз вызывать этот метод, и судите DateTime.Now - первый день месяца, если да, сделайте что-нибудь для своего бизнеса.

Мой английский плохой.

0 голосов
/ 01 декабря 2011

Вы можете сохранить данные в базе данных, как вы предлагаете, и просто написать что-то, что вы можете вызвать с помощью планировщика Windows. Я уверен, что другие предложат другие методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...