Mysql Windows Формы | Соединение должно быть действительным и открытым - PullRequest
0 голосов
/ 15 февраля 2020

Добрый день, друзья, помогите завершить этот класс, вот в чем дело: я пытаюсь сделать так, чтобы, если нет соединения с базой данных, было выполнено одно действие в форме, будет соединение к базе данных мы выполняем еще одно действие.

Теперь проблема в том, что, если вы не подключитесь к базе данных, произойдет ужасная задержка самого приложения.

    using System;
using MySql.Data.MySqlClient;

namespace Launcher.SupportClass
{
    public class Web_MysqlDataBase : IDisposable
    {
        MySqlConnection connection = new MySqlConnection("server=127.0.0.1;port=3306;username=root;password=1234;database=test-test;");

        public bool Connection_BD;
        public void OpenConnect()
        {
            if (connection.State == System.Data.ConnectionState.Closed)
            {
                try
                {
                    connection.Open();
                    CheckConnect();
                }
                catch 
                {
                    CheckConnect();
                }
                finally
                {
                    CheckConnect();
                    closedConnection();
                }

            }
        }
        public void closedConnection()
        {
            if (connection.State == System.Data.ConnectionState.Open)
            {
                connection.Close();
            }
        }
        public MySqlConnection getConnection()
        {
            return connection;
        }
        public void Dispose()
        {
            Dispose(true);
        }
        public void CheckConnect()
        {
            if (connection.State == System.Data.ConnectionState.Open)
            {
                Connection_BD = true;
            }
            if (connection.State == System.Data.ConnectionState.Closed)
            {
                Connection_BD = false;
            }
        }
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                // free managed resources
                if (connection.State != System.Data.ConnectionState.Open)
                {
                    connection.Close();
                    connection = null;
                    Dispose();
                }
            }
        }
    }
}

Далее, Я хочу выполнить эту простую конструкцию, но уже есть ошибки, что я делаю не так?

                        Web_MysqlDataBase bd = new Web_MysqlDataBase();
        bd.OpenConnect();
        string query = "SELECT `text_update` FROM `launcher` WHERE `opened`='1'";
        MySqlCommand command = new MySqlCommand(query, bd.getConnection());
        if (bd.Connection_BD == true)
        {
            DataTable table = new DataTable();
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = command;
            adapter.Fill(table);
            if (table.Rows.Count > 0)
            {
                string name = command.ExecuteScalar().ToString();
                ScrollingLeable.Text = name;
                ScrollingLeable.position = 750;
                ScrollsLeable.Visible = true;
                ScrollingLeable.Visible = true;
            }
            else
            {
                ScrollsLeable.Visible = false;
                ScrollingLeable.Visible = false;
            }
        }
        else
        {
            ScrollsLeable.Visible = false;
            ScrollingLeable.Visible = false;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...