2012-04-02 16 views
15

que tienen una cadena de conexión de esta manera:Forma correcta de obtener el nombre de usuario y la contraseña de la cadena de conexión?

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

¿Cómo consigo los diversos parámetros de base de datos fuera de él? Puedo obtener el nombre de base de datos y servidor de esta manera:

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

necesito el nombre de usuario y contraseña, así mismo modo. No se establece ninguna propiedad en el objeto MySqlConnection.

En la actualidad lo hago de esta manera:

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

¿Existe una práctica aceptada aquí?

Respuesta

39

podría utilizar el SqlConnectionStringBuilder Clase

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

funciona esto bien para MySQL así? – nawfal

+1

Si usa componentes .NET especiales para MySQL, entonces debe haber ConnectionStringBuilder específico, p. MySqlConnectionStringBuilder. – Devart

+0

@Devart gracias ... ahora lo entiendo .. – nawfal

Cuestiones relacionadas