ConnectionStrings in app.config auslesen

DimpiM

Mitglied
Servus Tutorials Gemeinde,

ich komm mal gleich zu meinem Problem und zwar möchte ich die ConnectionStrings meiner app.config auslesen.
app.config
Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="conn" connectionString="Data Source=Server01;Initial Catalog=&quot;DBName&quot;;Persist Security Info=True;User ID=User;Password=PW*" 
         providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Nun lese ich die app.config aus und speichere das Ergebniss gleich in eine ComboBox
C# Code
Code:
foreach (ConnectionStringSettings connSetting in ConfigurationManager.ConnectionStrings)
{
    cmbTest.Items.Add(new ConnectionString(connSetting.Name, connSetting.ConnectionString));
}

Das funktionier alles wunderbar, wobei ich allerdings 3 Einträge in meiner ComboBox bekomme:
LocalSqlServer
OraAspNetConString
conn


Woher sind die anderen zwei Einträge und vorallem wie bekomm ich sie weg?

Achja, ich füge in die ComboBox ein Objekt der Klasse ConnectionString ein, bei der ich einfach die ToString() Methode überschrieben hab... also nicht wundern
 

DimpiM

Mitglied
Den ConnectionString Name, also "conn"... funktioniert ja auch, bloß die zwei anderen Einträge LocalSqlServer und OraAspNetConString stören mich. Die hab ich ja auch schließlich nicht in meine app.config geschrieben.
 

Gotenks

Mitglied
Hier habe mal was für dich gebaut...

C#:
Dictionary<string, string> connStrings = new Dictionary<string, string>(); 

connStrings.Add("Connection string 1", ConfigurationManager.ConnectionStrings["1"].ConnectionString);
connStrings.Add("Connection string 2", ConfigurationManager.ConnectionStrings["2"].ConnectionString);

comboBox1.DataSource = new BindingSource(connStrings, null); 
 comboBox1.DisplayMember = "KEY";  // wenn du hier Value eingibt zeigt er den String an. Doch belasse es bei Key dann siehst du was du bei "Connection string 1 oder Connection string 2" eingegeben hast.

Wenn es probleme gibt sag bescheid :)
 

DimpiM

Mitglied
Danke Gotenks, sowas wäre allerdings nur möglich, wenn ich meine app.config nicht dynamisch befüllen und auslesen würde.

Bin jetzt aber drauf gekommen wo der "Fehler" steckt. Es ist eigentlich gar kein Fehler, Ich hab nämlich mal den "Oracle Providers for ASP.NET" installiert und auch eine SQL Instanz. Wenn ich die installiere, machen sie einen Eintrag in die machine.config. Dort hab ich die beiden Einträge einfach auskommentiert und siehe da, die beiden Einträge werden beim Auslesen der app.config nicht mehr angezeigt.
Hier der Link zu Microsoft, bei der erkärt wird, wie das mit den Konfigurationsdatein aussieht: http://technet.microsoft.com/de-de/library/cc754617(v=ws.10).aspx

Wahnsinnig, sowas muss man erstmal wissen