Abrufen der Verbindungszeichenfolge aus der appconfig-Datei in c #

7

Ich habe die folgende Verbindungszeichenfolge in meiner app.config -Datei deklariert:

%Vor%

Wenn ich versuche, diese Verbindungszeichenfolge mit dem folgenden C # -Code-Snippet abzurufen, erhalte ich den Wert null . Ich kann die Verbindungszeichenfolge nicht abrufen. Stimmt etwas in der Syntax nicht?

Erster Versuch:

%Vor%

Zweiter Versuch:

%Vor%     
mahesh 23.12.2011, 05:30
quelle

10 Antworten

6

Für ein Nicht-Web-Projekt und mit app.config eingerichtet wie im OP hier ist was ich normalerweise tun, da die Konfigurationsdatei Namen ändert, wenn die App kompiliert wird (zu yourapp.exe.config):

%Vor%

Dann, um die s-te Verbindungszeichenfolge zu referenzieren:

%Vor%     
RickNZ 23.12.2011, 14:18
quelle
10

Zuerst müssen Sie das appSettings -Tag

hinzufügen %Vor%

Zweitens fügen Sie einen Verweis auf System.Configuration zu Ihrem Projekt hinzu und fügen einen using System.Configuration in die Quelle ein.

Dann können Sie mit ConfigurationManager.AppSettings auf Ihre Konfigurationseinstellung zugreifen:

%Vor%     
shenhengbin 23.12.2011 06:23
quelle
2

Ich habe das gleiche Problem, aber nach vielen Nachforschungen habe ich herausgefunden, dass der Grund dafür ist, dass der Code eine NULL-Referenzausnahme verursacht, weil er den NULL-Wert zurückgibt, wenn Sie den aufrufen > ToString () oder die ConnectionString-Eigenschaft der Eigenschaft ConfigurationManager.ConnectionStrings , bei der die Ausnahme ausgelöst wird, also zu
Wenn Sie die richtige Verbindungszeichenfolge zurückgeben, müssen Sie mithilfe des folgenden Codes in die ConnectionStringSettings indizieren.

%Vor%     
Cizaphil 19.11.2012 18:51
quelle
1

Eine andere mögliche Fehlerursache könnte eine falsche Namensauflösung durch das .NET-Framework sein.

Wenn der Name der Anwendung länger als der 8.3-Name ist (zB GreatStuff.exe ), wird er möglicherweise mit seinem kurzen 8.3-äquivalenten Namen gestartet (in meinem Beispiel GREATS~1.EXE ) und .NET sucht dann nach der app.config -Datei indem Sie einfach .config an den Kurznamen anhängen. Und das wird scheitern.

    
Pierre Arnaud 23.12.2011 06:25
quelle
1

Eine Sache, die ich beim Kompilieren von WinForm App in VS 2013 bemerkt habe:

Ich füge Verbindungszeichenfolgen in meine Einstellungsdatei ein - wodurch meine app.config-Datei aktualisiert wird

Wenn ich Folgendes erwarte:

%Vor%

Ich muss schreiben:

%Vor%

Alles andere ist wie gewohnt

    
Robert Achmann 16.08.2015 15:06
quelle
1

Ich mache das, um meine Verbindungszeichenfolge "OracleDbContext" zu erhalten ...

%Vor%

Meine web.config sieht folgendermaßen aus:

%Vor%     
Anthony De Souza 31.03.2017 15:21
quelle
0
%Vor%

Funktioniert die obige Konfiguration mit der API / Code wie:

%Vor%     
Zenwalker 23.12.2011 05:47
quelle
0

Die erste Syntax ist definitiv gültig.

Die mögliche Ursache ist, dass die Konfigurationsdatei nicht ordnungsgemäß in der Anwendung geladen wurde. Ich möchte sicherstellen, um welche Art von Projekt es sich handelt. Wenn es sich um eine WinForm-Anwendung oder -Konsolenanwendung handelt, müssen Sie dies in app.config festlegen. Es wird nach .config kompiliert und geladen, wenn die Anwendung gestartet wird. Wenn es sich um eine Webanwendung handelt, können Sie den Knoten leider nicht zur Datei app.config hinzufügen, da er nicht geladen wird. Sie müssen es in die web.config einfügen. Wenn Sie die Einstellungen in der Konfigurationsdatei mit einer .net-Bibliothek (DLL) speichern möchten, wird die Konfigurationsdatei trotzdem nicht geladen. Die Konfigurationsdatei wird nur der Hauptanwendung folgen.

    
Edward Zhu 23.12.2011 06:10
quelle
0

Gleiches Problem. Basierend auf den Kommentaren Merlyn Morgan-Graham und Edward Zhu habe ich mein Projekt neu erstellt, das die Datei app.config verwendet hat, um eine Datei myapp.exe.config mit der Verbindungszeichenfolge zu erstellen. Die ursprüngliche erste Syntax funktionierte dann.

Anderes Problem: Erprobt mit dem Projekteigenschaften-Dialog, um die Verbindungszeichenfolge zu ändern, und es fügte "project.My.Mysettings." zum Verbindungszeichenfolgennamen hinzu. Der verursachte Fehler.

    
John Nowlin 26.04.2013 20:18
quelle
0

Es gibt eine andere Möglichkeit, dies für die Konsolen-App zu tun:

%Vor%

um es zu lesen

%Vor%

und dann

verwenden %Vor%     
Vedanshu 03.11.2013 13:23
quelle