448 votes

Obtenir la chaîne de connexion à partir d'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 s'exécute, voici l'erreur que j'obtiens :

La référence d'objet ne correspond pas à une instance d'objet.

5 votes

Où avez-vous mis cet App.config ? Dans le projet de l'application que vous exécutez ou peut-être dans une dll ? Vous devez d'abord

3 votes

Ajoutez une référence à System.Configuration.dll, et vous devriez pouvoir utiliser System.Configuration.ConfigurationManager.

0 votes

Votre chaîne de connexion contient une faute de frappe. Vous avez besoin d'un espace entre "Integrated" et "Security"

559voto

Duffp Points 1184

Il vous suffit de procéder comme suit :

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

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

22 votes

Je sais que c'est une question C#, mais puisque c'est en tête des résultats de recherche Google, pour faire ça en VB, c'est System.Configuration.ConfigurationManager.ConnectionStrings(‌​"Test").ConnectionSt‌​ring pour ceux d'entre nous qui doivent maintenir du code VB

320voto

Fredrick Gauss Points 1473

Comme il s'agit d'une question très fréquente, j'ai préparé quelques captures d'écran de Visual Studio afin de faciliter les choses en 4 étapes simples.

get connection string from app.config

26 votes

J'adore cette réponse. Par défaut, dans ma version de VS (VS2012 Ultimate), cette bibliothèque n'est pas incluse. using System.Configuration fonctionne encore

4 votes

Il fallait vraiment que j'ajoute la référence, sinon l'utilisation n'était pas soulignée, mais ConfigurationManager est toujours inconnu. Merci de votre compréhension.

36voto

gjijo Points 96
string str = Properties.Settings.Default.myConnectionString;

2 votes

Que se passe-t-il si app.config est ajouté en tant que lien vers un projet ?

4 votes

Cela ne fonctionnera que si votre chaîne de connexion est un paramètre de l'application, cela ne fonctionnera pas si vous récupérez <connectionStrings> dans app.config (c'est ce que demande l'OP !).

33voto

Carl Hancke Points 670

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

32voto

Tapan kumar Points 877

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

using System.Configuration;

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

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X