2012-04-30 15 views
8

Come ottenere tutti i nomi delle stringhe di connessione da web.config tramite codice in C#?Ottieni più stringhe di connessione da web.config

ho provato questo:

System.Configuration.Configuration webConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
ConnectionStringsSection x = webConfig.ConnectionStrings; 
string here = x.SectionInformation.Name; 

risposta

22
foreach (ConnectionStringSettings c in System.Configuration.ConfigurationManager.ConnectionStrings) 
    { 
     //use c.Name 
    } 
+0

Si può leggere di più su 'Sistema .Configuration.ConfigurationManager.ConnectionStrings' a [MSDN] (http://msdn.microsoft.com/en-us/library/system.configuration.connectionstringsettingscollection.aspx). –

+0

Ottieni *** la stringa di connessione *** da *** machine.config ***. Non solo *** web.config ***. – Kiquenet

0

non specifiche per stringhe di connessione, ma potrebbe essere utile comunque.

System.Web.HttpContext ctx = System.Web.HttpContext.Current; 

Configuration config; 

if (ctx != null) 
    config = WebConfigurationManager.OpenWebConfiguration(ctx.Request.ApplicationPath); 
0

Questo è come utilizzare LINQ per ottenere l'elenco dei nomi di stringa di connessione:

List<string> names = ConfigurationManager.ConnectionStrings 
    .Cast<ConnectionStringSettings>() 
    .Select(v => v.Name) 
    .ToList(); 

Oppure si può costruire un dizionario di esso:

Dictionary<string/*name*/, string/*connectionString*/> keyValue = ConfigurationManager.ConnectionStrings 
    .Cast<ConnectionStringSettings>() 
    .ToDictionary(v => v.Name, v => v.ConnectionString); 
Problemi correlati