2012-05-16 2 views
1

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

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using MySql.Data.MySqlClient; 

namespace ECBSRecruitmentAgencySoftware 
{ 
    public partial class LogIn : Form 
    { 
      public LogIn() 
     { 
      InitializeComponent(); 
     } 

      public bool tryLogin(string username, string password) 
      { 
       MySqlConnection con = new MySqlConnection("host=think-tek.net;user=ctutorial;password=chang3d;database=ctutorial_logintest;"); 
       MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;"); 
       cmd.Connection = con; 
       con.Open(); 
       MySqlDataReader reader = cmd.ExecuteReader(); 
       if (reader.Read() != false) 
       { 
        if (reader.IsDBNull(0) == true) 
        { 
         cmd.Connection.Close(); 
         reader.Dispose(); 
         cmd.Dispose(); 
         return false; 
        } 
        else 
        { 
         cmd.Connection.Close(); 
         reader.Dispose(); 
         cmd.Dispose(); 
         return true; 
        } 
       } 
       else 
       { 
        return false; 
       } 
      } 
     private void button1_Click(object sender, EventArgs e) 
     { 

      if (tryLogin(textBox1.Text, textBox2.Text) == true) 
      { 
       MainScreen F2 = new MainScreen(); 
       F2.Show(); 
       this.Hide(); 
      } 

      else MessageBox.Show("Wrong details!"); 

     } 




} 
} 
+1

первую очередь, быть осторожным, чтобы не оставлять чувствительной детали (хост/пароль) в вопросе. – Illuminati

+0

Какая ошибка? Какое исключение вы получаете? – aleroot

+0

вся чувствительная информация заменяется нереальной. –

ответ

0

Попробуйте строку соединения в заданном формате в образце:

public bool tryLogin(string username, string password) 
      { 
       MySqlConnection con = new MySqlConnection("SERVER=localhost;" + 
        "DATABASE=mydatabase;" + 
        "UID=testuser;" + 
        "PASSWORD=testpassword;"); 
       MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;"); 
       cmd.Connection = con; 
       con.Open(); 
       MySqlDataReader reader = cmd.ExecuteReader(); 
       if (reader.Read() != false) 
       { 
        if (reader.IsDBNull(0) == true) 
        { 
         cmd.Connection.Close(); 
         reader.Dispose(); 
         cmd.Dispose(); 
         return false; 
        } 
        else 
        { 
         cmd.Connection.Close(); 
         reader.Dispose(); 
         cmd.Dispose(); 
         return true; 
        } 
       } 
       else 
       { 
        return false; 
       } 
      }   
+0

Если я использую этот код, как он будет проверять, правильно или нет пользователь или пропуск? –

+0

Я прошу заменить строку подключения, как я дал в примере в моем ответе. –

+0

все еще получает ту же ошибку. Потому что я использую услуги хостинга, и оттуда я беру базу данных, как вы думаете, это может вызвать проблемы? –

1

Моя строка соединения для MySQL является:

string mySqlConn = "server=localhost;user=username;database=databasename;port=3306;password=password;"; 

Что исключение для вашего строка подключения? Должен быть номер ошибки.

+0

«Невозможно подключиться к любому из указанных хостов MySQL». это исключение является общим, и нет номера –

+0

Это дубликат сообщения [ссылка] http://stackoverflow.com/questions/4655669/unable-to-connect-to-any-of-the- defined-mysql-hosts [/ link], где он указывает, что строка подключения I и другие отправлены. Убедитесь, что вы указали свой номер порта. 3306 порта по умолчанию, но если вы изменили его при установке MySQL, это может быть другим. –

4

This site очень полезен с точки зрения соединений. Ваша строка подключения недействительна.

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

+0

Не знаете, почему в этом ответе больше не более + 1 ... это ответ, который решил эту проблему для меня. – pghprogrammer4

0

У меня была такая же проблема, и ошибка была в строке подключения! Так или иначе, я объявляю это дважды в двух разных местах. Однажды на мой локальный хост и второй раз на серверную базу данных. Когда я опубликовал проект на клиентской машине, было невозможно подключиться к localhost (что было моим компьютером). :-), и мне было интересно, как мне это получить: «невозможно подключиться к любому из указанных узлов mysql»

вот как человек может усложнить свою жизнь в течение нескольких дней! :-)

Конечно, я смог подключиться к db на серверной машине.

Так, например, это была моя проблема. И решение было объявить ему один раз и в одну базу данных !!!

А также, я хотел бы поделиться строки соединения, которая работала просто отлично:

CS = @ "SERVER = xxx.xxx.xxx.xxx; UID = хххх; Password = XXXXXXXXX; базы данных = ххххх ; порт = 3306" ;

0

строка подключения не тут никакой ошибки, но кулак проверить его на локальном сервере это исключение только поднять XAMPP не работает, первый запуск XAMPP перейти в браузер и введите локальный, если его работы вам будет см меню XAMPP , если его открыть локальный попробуйте подключиться любой ваш сервер

string connection = "server=localhost;database=student_record_database;user=root;password=;"; 
      MySqlConnection con = new MySqlConnection(connection); 
0
public bool tryLogin(string username, string password) 
{ 
    MySqlConnection con = new MySqlConnection("SERVER=xx.xx.xx.xx;DATABASE=dbname;UID=user;PASSWORD=password;CheckParameters=False;"); 
    MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;"); 
    cmd.Connection = con; 
    con.Open(); 
    MySqlDataReader reader = cmd.ExecuteReader(); 
    if (reader.Read() != false) 
    { 
     if (reader.IsDBNull(0) == true) 
     { 
      cmd.Connection.Close(); 
      reader.Dispose(); 
      cmd.Dispose(); 
      return false; 
     } 
     else 
     { 
      cmd.Connection.Close(); 
      reader.Dispose(); 
      cmd.Dispose(); 
      return true; 
     } 
    } 
    else 
    { 
     return false; 
    } 
} 
Смежные вопросы