2012-12-18 4 views
36

ich den folgenden Namespace verwendet haben mein Projekt an den SQL-Server zu verbinden:configuration existiert nicht im Namensraum System.Configuration

using System.Configuration; 

und verwendet auch

string str=System.Configuration.ConfigurationSettings.AppSettings["myconnection"]; 
SqlConnection oconnection = new SqlConnection(str); 
oconnection.Open(); 

, wenn ich das Programm ausführen , ein Fehler ist aufgetreten und zeigt die Nachricht

'System.Configuration.ConfigurationSettings.AppSettings' ist veraltet.Diese Methode ist veraltet, sie wurde durch 'System.Configuration! System.Configuration.ConfigurationManager.AppSettings '

aber ich habe keine Konfigurationsmanager in diesem Namensraum gefunden und für oconnection.Open(); die Nachricht

InvalidOperationException

unhandled war.

Was kann ich tun?

+2

System.Configuration.ConfigurationSettings.AppSettings wurde ersetzt - Sie sollten stattdessen 'System.Configuration.ConfigurationManager.AppSettings' verwenden (wie in der Meldung erläutert). Möglicherweise müssen Sie der System.Configuration-Assembly einen Verweis hinzufügen. Wie für die Ausnahme, wenn Sie versuchen, die SqlConnection zu öffnen, würde ich vorschlagen, die vollständige Ausnahme (Nachricht + Stacktrace) zu protokollieren - um weitere Informationen zu erhalten. –

Antwort

61

zu Referenzen gehen, und einen Verweis auf System.Configuration

hinzufügen Sobald Sie dies getan haben, sollten Sie in der Lage sein System.Configuration.ConfigurationManager zu verweisen.

string str = System.Configuration.ConfigurationManager.AppSettings["myconnection"]; 
SqlConnection oconnection = new SqlConnection(str); 
oconnection.Open(); 

Von MSDN: Die ConfigurationManager Klasse ermöglicht es Ihnen, Computer zugreifen, Anwendungs- und Benutzerkonfigurationsinformationen. Diese Klasse ersetzt die Klasse ConfigurationSettings, die veraltet ist.

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx


Edit: addiitonal Informationen

In Bezug auf die InvalidOperationException. Dies wird verursacht, wenn die Verbindungszeichenfolge keine Datenquelle oder einen Server angibt. Ich vermute, dass Ihre Verbindungszeichenfolge leer ist.

Überprüfen Sie in Ihrer web.config die Position Ihrer Verbindungszeichenfolge. Wenn es unter das Element fällt, müssen Sie Ihren Code ändern, um ConnectionStrings und nicht AppSettings zu suchen.

string str = System.Configuration.ConfigurationManager. 
    ConnectionStrings["myconnection"].ConnectionString; 
+0

Bruder Vielen Dank für Ihre Beratung.aber es gibt keine ConfigurationManager.I haben nach Ihren Vorschlag gemacht. Wieder danke – Mohibullah

+1

Sind Sie sicher, dass Sie eine Referenz zu System.Configuration Assembly hinzugefügt haben? Viele Projekttypen werden nicht mit dieser Referenz geladen und Sie müssen es manuell tun – Khan

+0

danke Jeffery Khan, ich habe ConfigurationManager.but ein anderes Problem wurde gesehen. Das Problem ist für oconnection.Open(); und die Nachricht ist InvalidOperationException wurde nicht behandelt (Instance-Fehler). Bitte, liebe, wieder helfen Sie mir. Vielen Dank für Ihre Herzlichkeit – Mohibullah

12

Fügen Sie einen Verweis von: System.Configuration.dll in Ihrem Projekt, dann wird Configuration

23

availiable sein, wenn Sie mehrere Projekte in der Lösung haben Sie die Referenz System.Configuration zu jedem von ihnen hinzufügen müssen für ConfigurationManager in jedem von ihnen zu arbeiten.

+2

Wow, das ist sehr seltsam ... aber es ist die richtige Antwort. –

+0

zog mir die Haare aus, bis ich diese Antwort fand. Vielen Dank! – Vandel212