C#. Работа с базой данных
у меня есть приложение, работающее с MySQL, оно работает корректно, но в какой-то момент соединение с БД теряется. Скажите, пожалуйста, почему это происходит? Я попробовал решить проблему так, но это, на мой взгляд, очень неудобно:
private void Operator_Load(object sender, EventArgs e)
{
if (Global.MysqlConnection.State == System.Data.ConnectionState.Closed)
{
//Соединяем к базе данных
MysqlConnection.Open();
}
if (Global.MysqlConnection.State == System.Data.ConnectionState.Open)
{
//Получаем все поставщики из база данных
try
{
MysqlCommand.Connection = Global.MysqlConnection;
MysqlCommand.CommandText = "select provider_name, provider_id from provider";
MysqlReader = MysqlCommand.ExecuteReader();
if (MysqlReader.HasRows)
{
//Очищаем лист
comboBoxSelectProvider.Items.Clear();
while (MysqlReader.Read())
{
comboBoxSelectProvider.Items.Add(MysqlReader["provider_name"].ToString());
}
comboBoxSelectProvider.SelectedIndex = 0;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
try
{
MysqlReader.Close();
}
catch
{
}
}
}
else
{
MessageBox.Show("Невозможно соединится с базе данных! Повторите действия еще разок ");
}
}
Ответы (1 шт):
Автор решения: OXYGEN
→ Ссылка
- у базы данных есть так называемый TimeOut по истечению которого база закрывает соединение с клиентом
- Вам уже сказали как правильно:
Выкиньте вот это Global.MysqlConnection из кода, как вам уже советовали, и создавайте подключение каждый раз, когда оно вам нужно – tym32167 12 часов назад