448 Stimmen

Verbindungszeichenfolge aus App.config abrufen

var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);

Und dies ist meine App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

Aber wenn mein Projekt läuft, ist dies mein Fehler:

Objektreferenz nicht auf eine Instanz eines Objekts gesetzt.

3voto

Andrew Punkte 662

Es ist möglich, dass der OP in dieser Frage versucht, eine App.Config innerhalb einer dll zu verwenden.

In diesem Fall versucht der Code tatsächlich, auf die App.Config der ausführbaren Datei zuzugreifen und nicht auf die DLL. Da der Name nicht gefunden wird, erhalten Sie eine Null zurück, daher die angezeigte Ausnahme.

Der folgende Beitrag könnte hilfreich sein: ConnectionString aus app.config einer DLL ist null

3voto

AmiNadimi Punkte 4278

Ich hatte das gleiche Problem. Meine Lösung wurde aus zwei Projekten zusammengesetzt. A Class library und eine Website, die auf das Klassenbibliotheksprojekt verweist. Das Problem war, dass ich versucht habe, auf die App.config in meinem Class library Projekt, aber das System suchte in Web.config der Website. Ich habe die Verbindungszeichenfolge in Web.config und ... Problem gelöst!

Der Hauptgrund war, dass trotz ConfigurationManager in einer anderen Baugruppe verwendet wurde, wurde im laufenden Projekt gesucht.

3voto

Dean P Punkte 1233

In den obigen Antworten wurde nicht näher darauf eingegangen wobei der Wert in connectionStrings index stammt.

Wie oben erwähnt, erhalten Sie Ihre Verbindungszeichenfolge, indem Sie sagen:

string conStr = ConfigurationManager.ConnectionStrings["XXX"].ToString();

Zur Verwendung des korrekten Wertes von XXX gehen Sie zu Ihren Hauptprojekten web.config Datei und suchen Sie nach dem folgenden Codestück:

<connectionStrings>
    <add name="Authentication" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=Authentication;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Authentication.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

Dort heißt es name= ist der Text innerhalb dieser fortlaufenden Anführungszeichen der Wert von XXX die Sie im obigen Code verwenden. In meinem obigen Beispiel ist es zufällig Authentication

2voto

khatami Punkte 21
string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;

2voto

Chandra Malla Punkte 2329

Es scheint wie Problem ist nicht mit Verweis, Sie erhalten connectionstring als null, so stellen Sie bitte sicher, dass Sie den Wert in der Konfigurationsdatei Ihr Projekt ausgeführt, d.h. das Hauptprogramm/Bibliothek, die gestartet/ausgeführt wird zuerst hinzugefügt haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X