C#winformsアプリでapp.configデータベース接続文字列にアクセスできないようです。
app.configコード
<connectionStrings>
<add name="MyDBConnectionString" providerName="System.Data.SqlClient"
connectionString="Data Source=localhost;Initial Catalog=MySQLServerDB; Integrated Security=true" />
</connectionStrings>
C#コード:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["MyDBConnectionString"];
C#コードを試すと、次のメッセージが表示されます。
警告1 'System.Configuration.ConfigurationSettings.AppSettings'は廃止されました: 'このメソッドは廃止され、System.Configuration!System.Configuration.ConfigurationManager.AppSettingsに置き換えられました
ただし、使用しようとすると:
conn.ConnectionString = System.Configuration!System.Configuration.ConfigurationManager.AppSettings["MyDBConnectionString"];
エラーが発生します:代入、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみがステートメントとして使用できます
必要なものはこれだけです。
System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
ConfigurationManager
の代わりにConfigurationSettings
を使用します。 ConnectionStrings
セクションの接続文字列に使用するconnectionStrings
プロパティがあります。
ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
AppSettingsではなく、ConnectionStringsコレクションを使用しています。
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;
}
これを試して
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;
}
回線を使用することを示す回答
ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
は正しい。
ConfigurationManagerが存在しないというエラーが表示される場合、プロジェクトがSystem.Configurationを参照していないためです。
.NET Frameworkでこれを行うには、ソリューションエクスプローラーで、このコード行を使用するプロジェクトでReferencesを右クリックし、参照を追加...、次に左側のAssembliesおよびその下のFrameworkを選択します。リストでSystem.Configurationを選択し、Okをクリックします。
これについて:
エラーが発生します:ステートメントとして使用できるのは、割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです
私はこのような変数を宣言し、問題を解決しました:
var strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;