Рестарт программы

316
16 мая 2017, 01:26

Есть первая форма Input.

sqlConnection = new SqlConnection(sql.get());
try
{
    sqlConnection.Open();
    List<Staff> staff = new List<Staff>();
    SqlCommand command = new SqlCommand("SELECT id, name, surname, patronymic FROM staff WHERE type = '1' AND disabled = '0'", sqlConnection);
    SqlDataReader sqlReader = command.ExecuteReader();
    while (sqlReader.Read())
    {
        staff.Add(new Staff {
            id = (int)sqlReader["id"],
            title = (string)sqlReader["surname"] + " " + (string)sqlReader["name"] + " " + sqlReader["patronymic"].ToString()
        });
    }
    comboBoxLogin.DataSource = staff;
    comboBoxLogin.DisplayMember = "title";
    comboBoxLogin.ValueMember = "id";
    sqlConnection.Close();
}
catch (Exception err)
{
    applog.write(err);
    DialogResult error = MessageBox.Show("Получить список администраторов не удалось, проверьте настройки подключения MS SQL Server. Открыть настройки MS SQL?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
    if (error == DialogResult.Yes)
    {
        Form setting = new setting();
        setting.Owner = this;
        setting.Show();
    }
    if (error == DialogResult.No)
        Application.Exit();
}

Если к БД не получилось подключится, то открываем настройки. После того, как форму настроек закрыли нужно перезапустить программу.

Делаю так:

private void setting_Closed(object sender, FormClosedEventArgs e)
{
    Application.Restart();
}

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

Можете объяснить почему так происходит?

READ ALSO
EntytyFrameworkCore. Подскажите по модели БД

EntytyFrameworkCore. Подскажите по модели БД

Планирую модель БД и столкнулся с тем что у меня много сязей между 3 таблицами со следуюшей зависимостью:

360
Как вернуть блок на прежнее место спустя время?

Как вернуть блок на прежнее место спустя время?

Есть блок, который я отключаю с помощью SetActiveЗатем проверяю, активен ли объект с помощью ActiveSelf

303
Как задать таймаут для GET-запроса

Как задать таймаут для GET-запроса

Использую библиотеку xnetdll

376