web-dev-qa-db-fra.com

Comment utiliser le ConfigurationManager.AppSettings

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

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

Et voici ce que j'ai pour les "appSettings"

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

mais ça ne fonctionne pas.

40
jorame

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

Globalement, 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 avec une chaîne, ce qui n’est pas correct. Vous devez le transmettre au constructeur ou définir la propriété con.ConnectionString.

24
Anton Vidishchev

Votre fichier web.config Devrait 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"]);
40
Justin Rusbatch

tu devrais utiliser []

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

\ Si ce que vous avez posté correspond exactement à ce que vous utilisez, votre problème est un peu évident. Supposons maintenant que dans votre web.config vous avez une 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 dans différentes bases de données).

 con.ConnectionString = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
0
Obi Onuorah