Il semble impossible d'accéder à la chaîne de connexion à la base de données app.config dans mon application c # winforms.
code app.config
<connectionStrings>
<add name="MyDBConnectionString" providerName="System.Data.SqlClient"
connectionString="Data Source=localhost;Initial Catalog=MySQLServerDB; Integrated Security=true" />
</connectionStrings>
Code C #:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["MyDBConnectionString"];
Lorsque j'essaie le code C #, je reçois un message:
Avertissement 1 'System.Configuration.ConfigurationSettings.AppSettings' est obsolète: ' Cette méthode est obsolète, elle est remplacée par System.Configuration! System.Configuration.ConfigurationManager.AppSettings'
Cependant, lorsque j'essaie d'utiliser:
conn.ConnectionString = System.Configuration!System.Configuration.ConfigurationManager.AppSettings["MyDBConnectionString"];
Je reçois une erreur: Seules les expressions d’affectation, d’appel, d’incrémentation, de décrémentation et de nouvel objet peuvent être utilisées comme instruction
C'est tout ce dont vous avez besoin:
System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
Utilisez ConfigurationManager
au lieu de ConfigurationSettings
. Il possède une propriété ConnectionStrings
que vous devriez utiliser pour les chaînes de connexion dans la section connectionStrings
:
ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
Vous utilisez la collection ConnectionStrings, pas les AppSettings.
ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionString" value="Data Source=MY-PC;Initial Catalog=DB2013;User ID=sa;Password=MYSQL123" />
</appSettings>
</configuration>
using System.Configuration;
using System.Data.SqlClient;
namespace OnlineDelete_W2013
{
public partial class CommodityEdit : Form
{
SqlConnection MyConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
public CommodityEdit()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
MyConnection.Open();
}
catch (Exception)
{
throw;
}
essaye ça
ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnection"].ToString()))
{
....(your code here) ...
}
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["MyDBConnectionString"].ConnectionString;
try
{
conn.Open();
}
catch (Exception)
{
throw;
}
Les réponses indiquant d'utiliser la ligne
ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
sont corrects.
Si une erreur apparaît indiquant que ConfigurationManager n'existe pas, c'est que votre projet n'a pas référencé System.Configuration .
Pour ce faire dans .NET Framework, dans Explorateur de solutions , dans le projet où vous voulez utiliser cette ligne de code, cliquez avec le bouton droit de la souris sur Références , choisissez Ajouter une référence ... , puis choisissez Assemblies sur le côté gauche et Cadre sous celui-ci. Choisissez System.Configuration dans la liste et cliquez sur Ok .
À propos de ça:
Je reçois une erreur: seules les expressions d'affectation, d'appel, d'incrémentation, de décrémentation et de nouvel objet peuvent être utilisées comme instruction
Je viens de déclarer un var comme ceci et de résoudre le problème:
var strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;