Member 9983063 Ответов: 2

Системе не удалось установить соединение


Я работаю над pos системой и все вещи работают нормально даже я добавил базу данных MySQL workbench в visual studio в обозревателе серверов но когда я пытаюсь подключить свое программное обеспечение с подключением к базе данных так что получаю ошибку система не смогла установить соединение пожалуйста помогите увидеть мой код и пожалуйста укажите мне где я ошибаюсь и каков наилучший способ решить эту проблему спасибо

Что я уже пробовал:

private string TstServerMySQL;
    private string TstPortMySQL;
    private string TstUserNameMySQL;
    private string TstPwdMySQL;
    private string TstDBNameMySQL;

    private void cmdTest_Click(object sender, EventArgs e)
    {
        //Test database connection

        TstServerMySQL = txtServerHost.Text;
        TstPortMySQL = txtPort.Text;
        TstUserNameMySQL = txtUserName.Text;
        TstPwdMySQL = txtPassword.Text;
        TstDBNameMySQL = txtDatabase.Text;

        try
        {
            SQLConn.conn.ConnectionString = "Server = '" + TstServerMySQL + "';  " + "Port = '" + TstPortMySQL + "';" + "user id = '" + TstUserNameMySQL + "';   " + "password = '" + TstPwdMySQL + "'; " + "Database = '" + TstDBNameMySQL + "'";
            SQLConn.conn.Open();
            Interaction.MsgBox("Test connection successful", MsgBoxStyle.Information, "Database Settings");

        }
        catch
        { 
            Interaction.MsgBox("The system failed to establish a connection", MsgBoxStyle.Information, "Database Settings");
        }
        SQLConn.DisconnMy();
    }

2 Ответов

Рейтинг:
2

Dave Kreskowiak

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

Помимо того, что вы вообще не выполняете никакой проверки ввода, вы используете конкатенацию строк для построения строки подключения, что делает ваш код в значительной степени нечитаемым и занозой в заднице для отладки. Вместо этого используйте интерполяцию строк, и это станет намного проще. (Вам также не нужны все эти чертовы пробелы и одинарные кавычки!)

string connStr = $"Server={TstServerMySQL};Port={TstPortMySQL};Usser Id={TstUserNameMySQL};Password={TstPwdMySQL};Database={TstDBNameMySQL}";
SQLConn.conn.ConnectionString = connStr;

Кроме того, разбиение построения строки соединения на собственную переменную облегчает просмотр содержимого строки соединения в отладчике перед назначением ее объекту соединения.


Рейтинг:
0

Patrice T

Цитата:
пожалуйста помогите увидеть мой код и пожалуйста укажите мне где я ошибаюсь и каков наилучший способ решить эту проблему спасибо

На какую помощь вы рассчитываете ?
Строка подключения зависит от ввода пользователя, как мы можем догадаться, что это за строка подключения ?

Уже 128 вопросов, а вы все еще не знаете, как сделать вопрос ответным.