예제 #1
0
        private static void StatusConnect(Main_F Form)
        {
            try
            {
                while (true)
                {
                    bool Status = false;

                    try
                    {
                        using (var Connect = new NpgsqlConnection(SystemArgs.ConnectString))
                        {
                            Connect.Open();

                            using (var Command = new NpgsqlCommand("SELECT 1", Connect))
                            {
                                using (var Reader = Command.ExecuteReader())
                                {
                                    while (Reader.Read())
                                    {
                                        Status = true;
                                    }
                                }
                            }

                            Connect.Close();
                        }
                    }
                    catch (Exception)
                    {
                        Status = false;
                        throw;
                    }

                    SystemArgs.StatusConnect = Status;

                    if (Status)
                    {
                        Form.ConnectDB_TB.BeginInvoke(new MethodInvoker(delegate
                        {
                            Form.ConnectDB_TB.Text      = "Установлено";
                            Form.ConnectDB_TB.BackColor = Color.FromArgb(188, 220, 244);
                        }));
                    }

                    Thread.Sleep(1000);
                }
            }
            catch (Exception)
            {
                Form.ConnectDB_TB.BeginInvoke(new MethodInvoker(delegate
                {
                    Form.ConnectDB_TB.Text      = "Не установлено";
                    Form.ConnectDB_TB.BackColor = Color.Red;
                    if (MessageBox.Show("Соединение с базой данных потеряно. Восстановите подключение и перезапустите программное обеспечение", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
                    {
                        SystemArgs.PrintLog("Ошибка при подключении к БД");
                        Application.Exit();
                    }
                }));
            }
        }
예제 #2
0
 public static async void StatusConnectAsync(Main_F Form)
 {
     await Task.Run(() => StatusConnect(Form));
 }