Необходимо, чтобы пользователь напомнил о предстоящей встрече (если она запланирована) в течение 15 минут при входе на главный экран приложения. - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно отобразить MessageBox, сообщающий пользователю, что встреча начнется в течение 15 минут после начала встречи.Главный экран приложения имеет AppointmentsDataGridView, который заполнен информацией из таблицы встреч MySql.Мне нужно каким-то образом получить ближайшую начальную встречу из столбца «Пуск» таблицы, как только пользователь войдет в систему и отобразит окно сообщения, сообщающее пользователю, если встреча начинается в течение 15 минут.

Я пыталсяперебрать AppointmentsDataGridView в индексе «start», равном 2, и попытаться потянуть в следующий раз и показать MessageBox, но этого не происходит.Показанный код является переключателем, который заполняет AppointmentsDataGridView при загрузке MainScreenForm.

    private void AllAppointmentsRadioButton_CheckedChanged(object sender, EventArgs e)
    {
        MySqlConnection con1 = new MySqlConnection(ConfigurationManager.ConnectionStrings["U04i5a"].ConnectionString);
        MySqlCommand cmd1 = new MySqlCommand("SELECT appointmentId, customerId, start, end, type FROM appointment", con1);
        con1.Open();
        MySqlDataAdapter adapter1 = new MySqlDataAdapter(cmd1);
        DataTable dt = new DataTable();
        adapter1.Fill(dt);
        AppointmentsDataGridView.DataSource = dt;
        DateTime dtm = Convert.ToDateTime(dtptest.Text);
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            if (dtm.ToShortTimeString().Equals(dt.Rows[i][1].ToString()))
            {
                MessageBox.Show(dtm.ToShortDateString());
                MessageBox.Show(dtm.ToShortTimeString());
                MessageBox.Show(dtm.ToShortDateString());
            }
            //indexes: 0= appointmentId, 1= customerId, 2= start, 3= end, 4= type
            dt.Rows[i][1] = TimeZoneInfo.ConvertTimeFromUtc((DateTime)dt.Rows[i][2], TimeZoneInfo.Local);
            dt.Rows[i][1] = TimeZoneInfo.ConvertTimeFromUtc((DateTime)dt.Rows[i][3], TimeZoneInfo.Local);
            TimeSpan duration = (DateTime)dt.Rows[i][2] - DateTime.Now;
            if (duration.TotalMinutes < 15)
            {
                MessageBox.Show("There is less than 15 minutes before your next appointment:" + dt.Rows[i][2]);
            }
        }
        //today = DateTime.Now.Date.ToString("yyyy-MM-dd");
        //15 minute remider might be here?
        AppointmentsDataGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        con1.Close();
        AppointmentsDataGridView.ClearSelection();
        AppointmentsDataGridView.CurrentCell = null;
        AppointmentsDataGridView.Update();
        AppointmentsDataGridView.Refresh();
    }

Формат столбца «start» из БД MySql в DateTime »2019-05-28 13:00: 46 "

Необходимый ящик сообщений не отображается.

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