2014-01-29 3 views
-1

table from which i am taking date and time![][1]получить даты и время из базы данных и имеет тревогу

У меня есть метод, называемый GetAlarm(), который я использую в Form_Load. Моя тревога не поднимается. Например, сегодняшний день составляет 29 января 2014 года, и в настоящее время время составляет 8:30 утра, а в базе данных у меня есть 29-й первый сигнал тревоги в 8:35 утра, затем второй в 8:45, затем третий в 8:50 , тогда, когда я запускаю приложение в 8:30, тогда будет сигнал тревоги в 8:35 утра, а затем я могу отложить или закрыть будильник, если я закрою его, тогда он должен принять следующий 8:45 AM-сигнал, и мне не придется переписывать, запустите приложение.

private void GetAlarm() 
     { 
      if (Collection.SelectQuery("SELECT CONVERT(varchar, Date, 111) FROM Mst_Event WHERE (CONVERT(varchar, Date, 111) = CONVERT(varchar, GETDATE(), 111))") == true) 
      { 
       ListBox lst = new ListBox(); 
       Collection.FillList(lst, "SELECT time FROM Mst_Event WHERE (CONVERT(varchar, Date, 111) = CONVERT(varchar, GETDATE(), 111))"); 
       for (int i = 0; i < lst.Items.Count; i++) 
       {      
        string AmPm = Collection.getData("SELECT AmPm FROM Mst_Event WHERE (CONVERT(varchar, Date, 111) = CONVERT(varchar, GETDATE(), 111)) and time='" + lst.Items[i].ToString() + "'"); 
        var datenow = DateTime.Now; 
        DateTime dt = new DateTime(); 
        if (AmPm.ToUpper() == "AM") 
        { 
         dt = new DateTime(datenow.Year, datenow.Month, datenow.Day, Convert.ToInt32(lst.Items[i].ToString().Substring(0, 2)), Convert.ToInt32(lst.Items[i].ToString().Substring(3, 2)), Convert.ToInt32(lst.Items[i].ToString().Substring(6, 2))); 
        } 
        else 
        { 
         dt = new DateTime(datenow.Year, datenow.Month, datenow.Day, Convert.ToInt32(lst.Items[i].ToString().Substring(0, 2)) + 12, Convert.ToInt32(lst.Items[i].ToString().Substring(3, 2)), Convert.ToInt32(lst.Items[i].ToString().Substring(6, 2))); 
        } 
        if (dt > DateTime.Now) 
        { 
         AlarmTime = Convert.ToInt32(lst.Items[i].ToString().Substring(0, 2)) + ":" + Convert.ToInt32(lst.Items[i].ToString().Substring(3, 2)) + " " + AmPm; 
         i = lst.Items.Count; 
        } 
       } 
      } 
      this.Text = "Alarm Clock - Set: " + AlarmTime; 
     } 

Пожалуйста, помогите мне. Я пробую это решение более двух недель.

+0

«Моя тревога не поднимается» - Что это значит? Каковы значения элементов в 'lst'? В чем смысл этого, если вам нужно посчастливиться «запустить» приложение winForms именно в тот момент, когда установлено время будильника? Вероятно, есть лучший способ добиться того, что вы пытаетесь сделать. –

+0

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

+0

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

ответ

0

Я использовал один таймер и в клещевого случае я назвал этот метод GetAlarm() таким образом, что

if (AlarmTime == "") 
     {    
     GetAlarm(); 
     } 

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

Смежные вопросы