Comment utiliser le ConfigurationManager.AppSettings
Je n'ai jamais utilisé les "appSettings" avant. Comment configurer ceci en C# à utiliser avec une connexion SQL, c'est ce que j'utilise pour les "connections"
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
Et c'est ce que j'ai pour le "appSettings"
SqlConnection con = new SqlConnection();
con = ConfigurationManager.AppSettings("ConnectionString");
mais ça ne fonctionne pas.
4 réponses
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 mettre con sur une chaîne, ce qui n'est pas correct. Vous devez soit le passer au constructeur ou mettre con.Propriété ConnectionString.
web.config
le fichier doit avoir la structure suivante:
<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 garder vos liens dans le AppSettings
section de votre fichier de configuration, il ressemblerait à ceci:
<configuration>
<appSettings>
<add key="MyConnectionString" value="..." />
</appSettings>
</configuration>
Et puis, votre constructeur SqlConnection devrait ressembler à ceci:
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["MyConnectionString"]);
\si ce que vous avez posté est exactement ce que vous utilisez alors votre problème est un peu évident. Maintenant, assumant 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 devriez utiliser la valeur de l'attribut name Pour renvoyer à la chaîne de connexion que vous voulez (vous pourriez en fait définir plusieurs chaînes de connexion à différentes bases de données), donc vous auriez
con.ConnectionString = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
vous devez utiliser []
var x = ConfigurationManager.AppSettings["APIKey"];