2012-12-19 54 views
6

我想连接到我的远程MySQL服务器,使用下面的代码。你能告诉我我做错了什么,因为用变量替换数据库连接信息似乎没有工作。这个数据库连接字符串有什么问题?

using MySql.Data.MySqlClient;  

    string db_Server = "10.0.0.0"; 
    string db_Name = "myDatabase"; 
    string db_User = "myUser"; 
    string db_Pass = "myPassword"; 


    // Connection String 
    MySqlConnection myConnection = new MySqlConnection("server = {0}; database = {1}; uid = {2}; pwd = {3}", db_server, db_Name, db_User, db_Pass); 

作为一个PHP开发人员,我更喜欢使用上面的代码,而不是下面的故意铸件:

MySqlConnection myConnection = new MySqlConnection("server=10.0.0.0; database=myDatabase; uid=myUser; pwd=myPassword"); 

但你可以在此图像中看到,我得到了很多的红色波浪线:http://screencast.com/t/xlwoG9by

+4

'DB_SERVER的连接字符串,db_Name,db_User,db_Pass'不是'db_Server,db_User,db_Pass,db_Name' – Bolu

回答

10

你参数的命令有错误的,它应该是:

db_server, db_Name, db_User, db_Pass 

目前,它是:

"server = {0}; database = {1}; uid = {2}; pwd = {3}" 
     db_Server   db_User db_Pass db_Name 

所以,你的说法应该是:

MySqlConnection myConnection = new MySqlConnection(string.Format(
"server = {0}; database = {1}; uid = {2}; pwd = {3}", 
db_Server,db_Name, db_User, db_Pass)); 

编辑:基础上,意见和讨论,你所得到的错误是,你正在试图在所有的东西职业水平。你应该在方法中有这些行,并在需要的地方调用该方法。喜欢的东西:

class MyClass 
{ 
    string db_Server = "10.0.0.0"; 
    string db_User = "myUser"; 
    string db_Pass = "myPassword"; 
    string db_Name = "myDatabase"; 


    public MySqlConnection GetConnection() 
    { 
     MySqlConnection myConnection = new MySqlConnection(string.Format(
        "server = {0}; database = {1}; uid = {2}; pwd = {3}", 
        db_Server, db_Name, db_User, db_Pass)); 
     return myConnection; 
    } 
} 
+1

服务器之后,您可能也需要一个端口。 –

+1

记得包括字符串。格式 – Habib

+0

它不适合我...仍然变得红色squigglies .... – Jeagr

1
MySqlConnection myConnection = new MySqlConnection(string.Format("server = {0}; database = {1}; uid = {2}; pwd = {3}", db_Server, db_User, db_Pass, db_Name)) 

的String.format()丢失

+0

用绳子。格式化另一个问题是错误的参数,您需要调整 – Habib

+0

True。错过了。但基本上由于缺少string.Format();)而出现红色波形 –

2

你介意单击此link,它铲球所有关于创建MySQL服务器:)