2012-04-02 15 views
15

Ho una stringa di connessione come questo:Il modo giusto per ottenere nome utente e password dalla stringa di connessione?

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

Come faccio ad avere i vari parametri del database fuori di esso? Posso ottenere il nome del database e il server in questo modo:

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

Ho bisogno del nome utente e della password e allo stesso modo. Nessuna proprietà è impostata sull'oggetto MySqlConnection.

Allo stato attuale lo faccio in questo modo:

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'è una pratica accettata qui?

risposta

39

è possibile utilizzare il SqlConnectionStringBuilder Classe

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

fa questo lavoro bene per mysql come bene? – nawfal

+1

Se si utilizzano componenti .NET speciali per MySQL, è necessario specificare ConnectionStringBuilder, ad es. MySqlConnectionStringBuilder. – Devart

+0

@Devart grazie .. ora ho capito .. – nawfal

Problemi correlati