Проблема обновления смены дня

C# - Winforms - SQL Server

я создаю приложение, которое отображает некоторые данные на экране текущего дня, которые он получает из базы данных... приложение похоже на виджет рабочего стола, поэтому данные всегда видны на рабочем столе

схема, которую я реализовал,

когда пользователь фиксирует какое-либо изменение данных, после запроса на обновление я вызываю функцию "обновление дисплея"... и новые данные извлекаются...

при этом мне не приходится постоянно / периодически проверять наличие изменений в базе данных, а данные на дисплее всегда текут.. этот вид становится технологией PUSH

теперь он отслеживает данные в базе данных за каждый день, но отображаются только сегодняшние данные... и когда программа запускается (вручную \ запуск системы), она проверяет дату и

  • если запись текущего дня не существует, она создает ее и начинает показ, который может быть впоследствии изменен
  • если запись существует, то она просто начинает показ и есть интерфейсы, доступные для изменения данных

теперь проблема в

Если компьютер работает, а приложение работает в 12:00, а дата меняется... Нет способа проверить, что:

  • день изменился, и в базе данных должна быть создана новая запись, а дисплей должен быть обновлен

теперь я могу постоянно проверять с помощью цикла на изменение даты и решать мою проблему, но я бы хотел, если бы был лучший вариант...

4 ответа

Решение

Вы можете установить таймер при запуске программы, чтобы уведомлять вас о наступлении полуночи. то есть, если программа запускается в 8:00, тогда установите таймер на срабатывание в полночь.

Ссылка: http://msdn.microsoft.com/en-us/library/system.timers.timer(VS.71).aspx

Если вы работаете в Unix/ Linux, вы можете запустить задание cron, которое запускает событие. Если вы находитесь в Windows, настройте планировщик задач, чтобы запустить событие.

И это событие может запускать небольшое приложение / скрипт, хранимую процедуру и т. Д., Чтобы делать то, что вы хотите.

Вы можете добавить элемент управления таймера в форму и установить интервал в 86400000 мс - вычисление начального значения при первом запуске.

Используйте таймер, чтобы проверять текущую дату каждую секунду. Каждый раз, когда он меняется, вы можете создать новую запись в базе данных.

Другие вопросы по тегам