42 votes

Comment utiliser le ConfigurationManager.AppSettings

Je n'ai jamais utilisé les "appSettings" auparavant. Comment configurez-vous cela en C# à utiliser avec un SqlConnection, c'est ce que j'utilise pour les "ConnectionStrings"

 SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

Et c'est ce que j'ai pour les "appSettings"

 SqlConnection con = new SqlConnection();
con = ConfigurationManager.AppSettings("ConnectionString");

Mais ça ne marche pas.

42voto

Justin Rusbatch Points 1812

Votre web.config doit avoir cette structure :

 <configuration>
    <connectionStrings>
        <add name="MyConnectionString" connectionString="..." />
    </connectionStrings>
</configuration>

Ensuite, pour créer une connexion SQL en utilisant la chaîne de connexion nommée MyConnectionString :

 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);

Si vous préférez conserver vos chaînes de connexion dans la section AppSettings de votre fichier de configuration, cela ressemblerait à ceci :

 <configuration>
    <appSettings>
        <add key="MyConnectionString" value="..." />
    </appSettings>
</configuration>

Et puis votre constructeur SqlConnection ressemblerait à ceci :

 SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["MyConnectionString"]);

24voto

Anton Vidishchev Points 519

ConfigurationManager.AppSettings est en fait une propriété, vous devez donc utiliser des crochets.

Dans l'ensemble, voici ce que vous devez faire :

 SqlConnection con= new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);

Le problème est que vous avez essayé de définir con sur une chaîne, ce qui n'est pas correct. Vous devez soit le transmettre au constructeur, soit définir la propriété con.ConnectionString.

0voto

adt Points 2727

Tu devrais utiliser []

 var x = ConfigurationManager.AppSettings["APIKey"];

0voto

Obi Onuorah Points 686

\ Si ce que vous avez posté est exactement ce que vous utilisez, votre problème est un peu évident. Maintenant, en supposant que dans votre web.config vous avez votre chaîne de connexion définie comme ceci

  <add name="SiteSqlServer" connectionString="Data Source=(local);Initial Catalog=some_db;User ID=sa;Password=uvx8Pytec" providerName="System.Data.SqlClient" />

Dans votre code, vous devez utiliser la valeur de l'attribut name pour faire référence à la chaîne de connexion souhaitée (vous pouvez en fait définir plusieurs chaînes de connexion à différentes bases de données), vous auriez donc

  con.ConnectionString = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;

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