2012-04-02 38 views
15

Tôi có một chuỗi kết nối như thế này:Phải có tên người dùng và mật khẩu từ chuỗi kết nối?

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200" 

Làm thế nào để có được các thông số cơ sở dữ liệu khác nhau ra khỏi nó? Tôi có thể lấy tên và máy chủ cơ sở dữ liệu như sau:

serverName = conObject.DataSource; 
dbName = conObject.Database; 

Tôi cần tên người dùng và mật khẩu tương tự. Không có thuộc tính nào được đặt trên đối tượng MySqlConnection.

Hiện nay tôi làm điều đó như thế này:

public static void GetDatabaseParameters(string connectionString, out string serverName, out string dbName, out string userName, out string password) 
{ 
    Match m = Regex.Match(connectionString, "SERVER=(.*?);DATABASE=(.*?);UID=(.*?);PASSWORD=(.*?);.*"); 

    //serverName = m.Groups[1].Value; 
    //dbName = m.Groups[2].Value; 
    userName = m.Groups[3].Value; 
    password = m.Groups[4].Value; 
} 

Có một thực tế được chấp nhận ở đây?

Trả lời

39

Bạn có thể sử dụng SqlConnectionStringBuilder Lớp

string conString = "SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"; 
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(conString); 
string user = builder.UserID; 
string pass = builder.Password; 
+0

làm việc này tốt cho mysql không? – nawfal

+1

Nếu bạn sử dụng các thành phần .NET đặc biệt cho MySQL, thì phải có ConnectionStringBuilder cụ thể, ví dụ: MySqlConnectionStringBuilder. – Devart

+0

@Devart cảm ơn .. bây giờ tôi nhận được nó .. – nawfal

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