2012-05-16 57 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- specified-mysql-hosts [/ link]它聲明使用連接字符串I和其他人已發佈。確保你指定你的端口號。 3306的默認端口,但如果您在MySQL上安裝它,它可能會有所不同。 –

4

This site在連接字符串方面很有幫助。您的連接字符串似乎無效。

另請確保您的用戶具有正確的訪問權限。許多主機提供商只能從本地主機訪問。您可能需要請求他們啓用您的用戶進行遠程訪問。

+0

不知道爲什麼這個答案沒有更多+ 1 ...這是解決這個問題的答案。 – pghprogrammer4

0

我有同樣的問題,錯誤是在連接字符串!不知何故,我向兩個不同的地點宣佈了兩次。一次到我的本地主機,第二次到服務器機器數據庫。當我在客戶端機器上發佈項目時,無法連接到本地主機(我的電腦是什麼)。:-)我想知道如何得到這個:「無法連接到任何指定的mysql主機」

這就是男人如何讓自己的人生複雜多少日子! :-)

當然,我能夠連接到服務器機器上的數據庫。

所以,舉個例子,這是我的問題。而且,解決方案是一次性向一個數據庫聲明!

還有,我想分享工作就好了我的連接字符串:

CS = @「服務器= xxx.xxx.xxx.xxx; UID = XXXX;密碼= XXXXXXXXX;數據庫= XXXXX ;端口= 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; 
    } 
} 
相關問題