var connection = ConnectionFactory.GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
Und das 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 das mein Fehler:
Der Objektverweis wurde nicht auf eine Instanz eines Objekts festgelegt.
Können Sie nicht einfach Folgendes tun:
var connection =
System.Configuration.ConfigurationManager.
ConnectionStrings["Test"].ConnectionString;
Ihre Assembly benötigt auch einen Verweis auf System.Configuration.dll
Da dies eine sehr häufige Frage ist, habe ich einige Screenshots von Visual Studio vorbereitet, damit Sie sie in vier einfachen Schritten leicht nachvollziehen können.
string str = Properties.Settings.Default.myConnectionString;
Überprüfen Sie auch, ob Sie die System.Configuration
-Dll in Ihre Referenzen aufgenommen haben. Ohne sie haben Sie keinen Zugriff auf die Klasse ConfigurationManager
im Namespace System.Configuration.
Fügen Sie Ihrer Seite zunächst einen Verweis auf System.Configuration
hinzu.
using System.Configuration;
Dann erhalten Sie entsprechend Ihrer app.config die Verbindungszeichenfolge wie folgt.
string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString();
Jetzt haben Sie Ihre Verbindungszeichenfolge in der Hand und können sie verwenden.
//Get Connection from web.config file
public static OdbcConnection getConnection()
{
OdbcConnection con = new OdbcConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
return con;
}
Probieren Sie dies aus
string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
1) Erstellen Sie ein neues Formular und fügen Sie Folgendes hinzu:
Imports System.Configuration
Imports Operaciones.My.MySettings
Public NotInheritable Class frmconexion
Private Shared _cnx As String
Public Shared Property ConexionMySQL() As String
Get
Return My.MySettings.Default.conexionbd
End Get
Private Set(ByVal value As String)
_cnx = value
End Set
End Property
End Class
wenn Sie die Verbindung verwenden möchten, tun Sie dies in Ihrer Form:
Private Sub frmInsert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cn As New MySqlConnection(frmconexion.ConexionMySQL)
cn.open()
und das ist es. Sie werden mit der DB verbunden und können Dinge tun.
Dies gilt für vb.net, aber die Logik ist dieselbe.
Ich hatte das gleiche Problem. Meine Lösung wurde aus zwei Projekten aufgebaut. Ein Class library
und eine Website, die auf das Klassenbibliotheksprojekt verweist. Das Problem war, dass ich versuchte, auf den App.config
in meinem Class library
-Projekt zuzugreifen, aber das System suchte in Web.config
der Website. Ich habe die Verbindungszeichenfolge in Web.config
eingefügt und ... das Problem wurde behoben!
Der Hauptgrund war, dass trotz der Verwendung von ConfigurationManager
in einer anderen Assembly innerhalb des laufenden Projekts gesucht wurde.
Hast du es versucht:
var connection = new ConnectionFactory().GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;
Sie können die Verbindungszeichenfolge mit der folgenden Codezeile abrufen:
using System; using System.Configuration;
var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
Hier ist eine Referenz: Verbindungszeichenfolge aus App.config
Das hat bei mir funktioniert:
string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
Ausgänge:
Datenquelle = .; Initial Catalog = OmidPayamak; IntegratedSecurity = True "
Es scheint, dass das Problem nicht in Bezug auf das Problem besteht. Sie erhalten die Verbindungszeichenfolge als Null. Vergewissern Sie sich daher, dass Sie der Konfigurationsdatei Ihres laufenden Projekts den Wert hinzugefügt haben, dh das Hauptprogramm/die Hauptbibliothek, das/die zuerst gestartet/ausgeführt wird.
Zuerst müssen Sie System.Configuration
Verweis auf Ihr Projekt hinzufügen und dann den folgenden Code verwenden, um die Verbindungszeichenfolge abzurufen.
_connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString();
Es ist möglich, dass das 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 und nicht auf die DLL zuzugreifen. Da der Name nicht gefunden wird, wird eine Null zurückgegeben, daher die angezeigte Ausnahme.
Der folgende Beitrag kann hilfreich sein: ConnectionString aus app.config eines DLL ist null
Ich habe das Problem gelöst, indem ich den Index verwendet habe, um die Zeichenfolge zu lesen und einzeln zu überprüfen. Lesen mit dem Namen gibt immer noch den gleichen Fehler.
Ich habe das Problem, wenn ich eine C # -Fensteranwendung entwickle. Ich hatte das Problem nicht in meiner asp.net-Anwendung. Es muss etwas in der Einstellung sein, das nicht stimmt.
Ich habe auf die Bibliothek System.Configuration
verwiesen und habe den gleichen Fehler. Die Debug-Dateien hatten nicht ihre app.config, erstellen Sie diese Datei manuell. Der Fehler ist, ich habe dieses Problem gelöst, indem ich die Datei "appname.exe.config" in den Debug-Ordner kopiert habe. Die IDE hat die Datei nicht erstellt.