2014-12-21 69 views
-1

我使用的是用戶輸入數據庫連接信息的表單,然後將其存儲在類中的多個字符串中dbConStr然後從實際中構建並引用連接形式。從用戶輸入的變量中存儲MySQL連接字符串,然後構建字符串[C#]

下面是類文件:

class dbConStr 
{ 
    public static String strServer; 
    public static String strPort; 
    public static String strDatabase; 
    public static String strUid; 
    public static String strPwd; 

    public static String strConnect = strServer + strPort + strDatabase + strUid + strPwd; 
} 

這裏是一個值分配給字符串按鈕:

private void btnStoreCon_Click(object sender, EventArgs e) 
    { 
     dbConStr.strServer = "Server="+txtServer.Text+";"; 
     dbConStr.strPort = "Port=" + txtPort.Text + ";"; 
     dbConStr.strDatabase = "Database=" + txtDatabase.Text + ";"; 
     dbConStr.strUid = "Uid=" + txtUsername.Text + ";"; 
     dbConStr.strPwd = "Pwd=" + txtPassword.Text + ";"; 
    } 

我收到的錯誤是,無法連接到指定的MySQL主機。

+2

我希望你認識到'公共靜態'意味着在任何給定的時間,最後提供給任何這些字符串的值將是any和所有用戶看到的值。換句話說,這對於幾個不同的用戶同時訪問不同的數據庫是不可信的。 – Kjartan

+0

什麼是結果連接字符串? – Steve

+0

所以 - 你問「無法連接到指定的MySQL主機」問題或關於存儲部分連接字符串?如果問題存在於連接中 - 請附上確切的錯誤消息或例外信息 – cyberhubert

回答

0
private void btnStoreCon_Click(object sender, EventArgs e) 
    { 
     dbConStr.strServer = "Server=" + txtServer.Text + ";"; 
     dbConStr.strPort = "Port=" + txtPort.Text + ";"; 
     dbConStr.strDatabase = "Database=" + txtDatabase.Text + ";"; 
     dbConStr.strUid = "Uid=" + txtUsername.Text + ";"; 
     dbConStr.strPwd = "Pwd=" + txtPassword.Text + ";"; 

     dbConStr.strConnect = dbConStr.strServer + dbConStr.strPort + dbConStr.strDatabase + dbConStr.strUid + dbConStr.strPwd; 
    } 

我需要創建中的字符串按鈕點擊事件

3

您可以使用MySqlConnectionStringBuilder創建連接字符串。

MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder(); 
conn_string.Server = "localhost"; 
conn_string.UserID = "user"; 
conn_string.Password = "password"; 
conn_string.Database = "test_db"; 
var connectionString = conn_string.ToString(); 

或者嘗試這樣的事:

class dbConStr 
{ 
    public static String strServer; 
    public static String strPort; 
    public static String strDatabase; 
    public static String strUid; 
    public static String strPwd; 

    public static string ConnectionString 
    { 
     MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder(); 
     conn_string.Server = dbConStr.strServer; 
     conn_string.UserID = dbConStr.strUid; 
     conn_string.Password = dbConStr.strPwd; 
     conn_string.Database = dbConStr.strDatabase; 
     conn_string.Port = dbConStr.strPort; 

     return conn_string.ToString(); 
    } 
} 
+0

理論上你的答案是正確的,但我不明白這將如何解決問題_unable連接到指定的主機_ – Steve

+0

這是更復雜的方式來創建建議使用的連接字符串。 –

+0

你也可以通過ovveride的方法將dbConStr類的ToString()方法返回這種connectionString –

0

你需要

using MySql.Data.MySqlClient; 






    private void btnStoreCon_Click(object sender, EventArgs e) 
    { 
     MySqlConnection connection; 
     string server; 
     string database; 
     string uid; 
     string password; 

     server = txtServer.Text; 
     database = txtDatabase.Text; 
     uid = txtUsername.Text; 
     password =txtPassword.Text; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + 
     database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 

     connection = new MySqlConnection(connectionString); 
    } 

更可以在這裏找到http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL