2012-04-02 7 views
15

Mam ciąg połączenia tak:Właściwy sposób na uzyskanie nazwy użytkownika i hasła z ciągu połączenia?

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

Jak mogę uzyskać różne parametry bazy danych z tego? Mogę uzyskać nazwę bazy danych i serwer w ten sposób:

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

Potrzebuję nazwę użytkownika i hasło, a także podobnie. W obiekcie MySqlConnection nie ustawiono żadnej właściwości.

Obecnie robię to tak:

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

Czy istnieje przyjęta praktyka tutaj?

Odpowiedz

39

Można użyć SqlConnectionStringBuilder Class

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

to działa dobrze dla MySQL, jak również? – nawfal

+1

Jeśli używasz specjalnych komponentów .NET dla MySQL, to powinien istnieć specyficzny ConnectionStringBuilder, np. MySqlConnectionStringBuilder. – Devart

+0

@Devart dzięki .. teraz dostaję to .. – nawfal

Powiązane problemy