web-dev-qa-db-fra.com

Obtenir la chaîne de connexion depuis App.config

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

Et voici mon 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>

Mais lorsque mon projet est lancé, c’est mon erreur:

La référence d'objet n'est pas définie à une instance d'un objet.

360
Moham ad Jafari

Ne pouvez-vous pas simplement faire ce qui suit:

var connection = 
    System.Configuration.ConfigurationManager.
    ConnectionStrings["Test"].ConnectionString;

Votre assemblage a également besoin d'une référence à System.Configuration.dll

459
Duffp

Comme il s’agit d’une question très courante, j’ai préparé des captures d’écran de Visual Studio afin de faciliter la procédure en 4 étapes simples.

get connection string from app.config

282
Fredrick Gauss
string str = Properties.Settings.Default.myConnectionString; 
32
gjijo

Vérifiez également que vous avez inclus la System.Configuration dll sous vos références. Sans cela, vous n'aurez pas accès à la classe ConfigurationManager de l'espace de noms System.Configuration.

28

Ajoutez d’abord une référence de System.Configuration à votre page.

using System.Configuration;

Ensuite, en fonction de votre app.config, obtenez la chaîne de connexion comme suit.

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

Voilà, vous avez maintenant votre chaîne de connexion dans votre main et vous pouvez l'utiliser.

20
Tapan kumar
//Get Connection from web.config file
public static OdbcConnection getConnection()
{
    OdbcConnection con = new OdbcConnection();
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
    return con;     
}
14
Gobind Mandal

Essayez ceci

string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
6
vishu9219

1) Créez un nouveau formulaire et ajoutez ceci:

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

ensuite, lorsque vous souhaitez utiliser la connexion, faites ceci sous la forme suivante:

 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()

et c'est tout. Vous serez connecté à la base de données et pourrez faire des choses.

Ceci est pour vb.net mais la logique est la même.

3
OREO

J'ai eu le même problème. ma solution a été construite à partir de deux projets. A Class library et un site Web référençant le projet de bibliothèque de classes. le problème était que j'essayais d'accéder au App.config dans mon projet Class library mais le système cherchait dans Web.config du site Web. Je mets la chaîne de connexion à l'intérieur de Web.config et ... le problème est résolu!

La raison principale en était que, bien que ConfigurationManager ait été utilisé dans une autre assemblée, il effectuait une recherche dans le projet d'exécution.

3
AmiNadimi

As-tu essayé:

var connection = new ConnectionFactory().GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);
3
Vlad Bezden
string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;
2
khatami

Vous pouvez récupérer la chaîne de connexion en utilisant la ligne de code ci-dessous -

using System; using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

Voici une référence: Connection String from App.config

1
somesh

Cela a fonctionné pour moi:

string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;

Les sorties:

Source de données = .; Catalogue initial = OmidPayamak; IntegratedSecurity = True "

1
Talha Imam

Il semble que le problème ne soit pas lié à la référence, vous obtenez une chaîne de connexion ayant la valeur null; assurez-vous donc que vous avez ajouté la valeur au fichier de configuration de votre projet en cours, ce qui signifie le programme/la bibliothèque principal démarré/exécuté en premier.

1
Chandra Malla

Vous devez d’abord ajouter la référence System.Configuration à votre projet, puis utiliser le code ci-dessous pour obtenir la chaîne de connexion.

_connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString();
1
Sagar Jaybhay

Il est possible que le PO de cette question tente d'utiliser un App.Config dans une DLL.

Dans ce cas, le code tente réellement d'accéder à App.Config de l'exécutable et non à la dll. Comme le nom n’est pas trouvé, vous obtenez un Null, d’où l’exception affichée.

Le post suivant peut être utile: ConnectionString à partir de app.config d'un DLL est null

1
Andrew

J'ai résolu le problème en utilisant l'index pour lire la chaîne et en le vérifiant un par un. Lire en utilisant le nom donne toujours la même erreur.
J'ai le problème lorsque je développe une application pour fenêtre C #, je ne l’avais pas dans mon application asp.net. Il doit y avoir quelque chose dans le décor qui ne va pas.

0
dew17

J'ai référencé la bibliothèque System.Configuration et j'ai la même erreur. Les fichiers de débogage n'avaient pas leur app.config, créez manuellement ce fichier. L'erreur est, j'ai résolu ceci en copiant le fichier "appname.exe.config" dans le dossier de débogage. Le IDE n'a pas créé le fichier.

0
jjcaicedo