2012-12-19 41 views
6

Tôi đang cố gắng kết nối với máy chủ MySQL từ xa của mình, sử dụng mã sau đây. Bạn có thể cho tôi biết những gì tôi đang làm sai khi thay thế thông tin kết nối cơ sở dữ liệu với các biến dường như không hoạt động.Điều gì là sai với chuỗi kết nối cơ sở dữ liệu này?

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); 

Là một nhà phát triển PHP, tôi thích sử dụng các mã trên thay cho đúc cố ý dưới đây:

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

Nhưng như bạn thấy trong hình ảnh này, tôi nhận được rất nhiều squiggles đỏ : http://screencast.com/t/xlwoG9by

+4

'db_Server , db_Name, db_User, db_Pass' không phải 'db_Server, db_User, db_Pass, db_Name' – Bolu

Trả lời

10

Trình tự tham số của bạn là sai, nó phải là:

db_server, db_Name, db_User, db_Pass 

Hiện nay nó là:

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

Vì vậy, tuyên bố của bạn nên là:

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

EDIT: dựa trên các ý kiến ​​và thảo luận, các lỗi mà bạn đang nhận được là bạn đang cố gắng tất cả những thứ ở cấp lớp. Bạn nên có những dòng bên trong một phương thức và gọi phương thức đó ở nơi bạn cần. Một cái gì đó như:

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

Bạn cũng có thể cần một cổng, sau máy chủ. –

+1

Hãy nhớ để bao gồm string.Format – Habib

+0

Nó không làm việc cho tôi ... vẫn nhận được 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() là mất tích

+0

Với chuỗi. Định dạng vấn đề khác là thông số sai, bạn cần điều chỉnh – Habib

+0

Đúng. Bỏ lỡ điều đó. Nhưng về cơ bản các squiggles đỏ xảy ra vì thiếu string.Format();) –

2

Bạn có nhớ cách nhấn link này, nó đã khắc phục tất cả về việc tạo ra các chuỗi kết nối của MySql server :)

Các vấn đề liên quan