web-dev-qa-db-ja.com

C#winformでapp.configを使用してデータベース接続文字列にアクセスする

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"];  

エラーが発生します:代入、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみがステートメントとして使用できます

19
Troy

必要なものはこれだけです。

System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
29
CSharpened

ConfigurationManagerの代わりにConfigurationSettingsを使用します。 ConnectionStringsセクションの接続文字列に使用するconnectionStringsプロパティがあります。

ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
8
Oded

AppSettingsではなく、ConnectionStringsコレクションを使用しています。

ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;
6
Mark Sherretta
<?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;
        }
5
Anurag

これを試して

 ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString; 
4
Enigma State
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnection"].ToString()))
{
....(your code here) ...
}
4
Alex Muni
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager
    .ConnectionStrings["MyDBConnectionString"].ConnectionString;
try
{
    conn.Open();                
}
catch (Exception)
{
    throw;                    
}
2
user2309554

回線を使用することを示す回答

ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

は正しい。

ConfigurationManagerが存在しないというエラーが表示される場合、プロジェクトがSystem.Configurationを参照していないためです。

.NET Frameworkでこれを行うには、ソリューションエクスプローラーで、このコード行を使用するプロジェクトでReferencesを右クリックし、参照を追加...、次に左側のAssembliesおよびその下のFrameworkを選択します。リストでSystem.Configurationを選択し、Okをクリックします。

1
Edu

これについて:

エラーが発生します:ステートメントとして使用できるのは、割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです

私はこのような変数を宣言し、問題を解決しました:

var strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;