2017-02-10 3 views
0

Я создаю настольное приложение, которое подключается к базе данных SQL. У меня возникли проблемы с подключением к базе данных по какой-то причине, соединение зависает бесконечно, не давая ошибки (не требует тайм-аута). Я использую XAMPP для своей базы данных. Я много искал проблему, я попытался, например, изменить строку подключения и отключить брандмауэр.MySqlConnection.Open бесконечно зависает

Вот мой код:

string connectionString = "Server=localhost;Database=typewrite;Uid=root;Pwd="; 

    public int signIn(string username, string password) 
    { 
     int signinNum = -1; 
     using (MySqlConnection conn = new MySqlConnection(connectionString)) 
     { 
      try 
      { 
       conn.Open(); // here is the problem 
      } 
      catch (MySqlException ex) 
      { 
       Debug.WriteLine(ex.ToString()); 
       return signinNum; 
      } 

      using (MySqlCommand cmd = conn.CreateCommand()) 
      { 
       try 
       { 
        cmd.CommandText = @"SELECT 'USER_id' WHERE USER_name = @name AND pass = @passw"; 
        cmd.Parameters.AddWithValue("@name", username); 
        cmd.Parameters.AddWithValue("@passw", password); 
        MySqlDataReader reader = cmd.ExecuteReader(); 

        while (reader.Read()) 
        { 
         signinNum = reader.GetInt32(0); 
        } 
       } 
       catch (MySqlException ex) 
       { 
        return signinNum; 
       } 
      } 
     } 
     return signinNum; 
    } 

Я попытался diffrent вариации этого не преобладают. Я знаю, что должен использовать mutli thredding, чтобы он не остановил мое приложение, как бы мне хотелось получить соединение с базой данных, прежде чем я пойду дальше.

И, кроме того, я сделал что-то подобное раньше, и это связано с проблемой.

+1

Никогда не храните пароли в виде простого текста – Plutonix

+0

На самом деле вопрос не задан, как я уже сказал, но я, безусловно, согласен. – user2366842

+0

Я знаю, что я не собираюсь хранить пароль в текстовом поле, это код, который только там проверяет соединение. –

ответ

0

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

Смежные вопросы