-1
我有一個名爲GetAlarm()方法中,我使用的Form_Load其中。我的警報沒有升起。例如,今天的日期是2014年1月29日,目前的時間是早上8點30分,而在數據庫中,我有29日1點在上午8點35分發出警報,然後是上午8點45分發生第二次鬧鈴,然後是上午8點50分發生第三鬧鈴,那麼當我在上午8:30運行應用程序時,則在上午8點35分會有鬧鐘,然後如果我關閉鬧鐘,則可以打盹或關閉鬧鐘,然後應該接下來的8點45分鬧鐘,運行應用程序。
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;
}
請幫助我我正在嘗試此解決方案超過兩週。
「我的鬧鈴沒有升起」 - 這是什麼意思? 'lst'中的項目的值是什麼? 如果你必須幸運地在設置鬧鐘時間的時刻「運行」winForms應用程序,這有什麼意義?可能有更好的方法來完成你想要做的事情。 –
我從當天的數據庫中獲取它的日期和時間後,我可以捕獲最新的鬧鐘時間,並且所有今天的鬧鐘將在列表中 – 3333
我有鬧鐘正在採取我在文本框中輸入時間並將其與當前時間匹配,然後出現鬧鐘,但我希望鬧鐘應該從數據庫 – 3333