SqlConnectionStringBuilderを使って接続文字列を動的に構築する
C#でデータベースから接続文字列を取得する方法
App.configファイルを使用する
これは、最も簡単で一般的な方法です。App.configファイルに接続文字列を保存し、コードから読み込みます。
手順
<configuration>
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" />
</connectionStrings>
</configuration>
- コードから接続文字列を読み込みます。
// App.configファイルから接続文字列を取得
string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
SqlConnectionStringBuilderクラスを使用して、接続文字列を動的に構築できます。
- SqlConnectionStringBuilderオブジェクトを作成します。
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
- 接続文字列のプロパティを設定します。
builder.DataSource = "localhost";
builder.InitialCatalog = "MyDatabase";
builder.IntegratedSecurity = true;
- 接続文字列を取得します。
string connectionString = builder.ConnectionString;
- SqlConnectionオブジェクトを作成して、データベースに接続します。
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
// データベース操作を実行
...
connection.Close();
環境変数を使用して、接続文字列を保存できます。
- 以下のコマンドを使用して、環境変数を作成します。
set "MyConnectionString=Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;"
string connectionString = Environment.GetEnvironmentVariable("MyConnectionString");
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
- App.configファイルを使用する方法は、最も簡単で一般的な方法です。ただし、接続文字列を頻繁に変更する必要がある場合は、この方法は適していません。
- 環境変数を使用する方法は、接続文字列を共有する必要がある場合に適しています。
補足
- 上記のコードは、SQL Serverデータベースに接続する場合の例です。他のデータベースを使用する場合は、接続文字列の形式が異なる場合があります。
- 接続文字列を安全に保存するために、暗号化を使用することを検討してください。
App.configファイルを使用する
// App.configファイルから接続文字列を取得
string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
<configuration>
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" />
</connectionStrings>
</configuration>
SqlConnectionStringBuilderを使用する
// SqlConnectionStringBuilderオブジェクトを作成
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
// 接続文字列のプロパティを設定
builder.DataSource = "localhost";
builder.InitialCatalog = "MyDatabase";
builder.IntegratedSecurity = true;
// 接続文字列を取得
string connectionString = builder.ConnectionString;
// SqlConnectionオブジェクトを作成して、データベースに接続
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
環境変数を使用する
// 環境変数から接続文字列を取得
string connectionString = Environment.GetEnvironmentVariable("MyConnectionString");
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
環境変数の設定
set "MyConnectionString=Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;"
C#でデータベースから接続文字列を取得するその他の方法
Web.configファイルを使用する (ASP.NETの場合)
ASP.NETアプリケーションの場合、Web.configファイルを使用して接続文字列を保存できます。
<configuration>
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" />
</connectionStrings>
</configuration>
// Web.configファイルから接続文字列を取得
string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
設定ファイルを使用して、接続文字列を保存できます。設定ファイルは、App.configファイルやWeb.configファイルとは別のファイルです。
- 設定ファイルを作成します。
<configuration>
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" />
</connectionStrings>
</configuration>
- コードから設定ファイルを読み込み、接続文字列を取得します。
// 設定ファイルを読み込み
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 接続文字列を取得
string connectionString = config.ConnectionStrings["MyConnectionString"].ConnectionString;
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
接続文字列を直接コードに記述することもできます。ただし、この方法は推奨されません。接続文字列を変更する必要がある場合、コードを変更する必要があり、コードの保守性が悪くなります。
- 以下のコードをコードに記述します。
string connectionString = "Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;";
// SqlConnectionオブジェクトを作成
SqlConnection connection = new SqlConnection(connectionString);
// データベースに接続
connection.Open();
// データベース操作を実行
...
// データベースとの接続を閉じる
connection.Close();
- App.configファイルまたはWeb.configファイルを使用する方法は、最も簡単で一般的な方法です。
- 設定ファイルを使用する方法は、App.configファイルやWeb.configファイルとは別のファイルに接続文字列を保存したい場合に適しています。
- 接続文字列を直接コードに記述する方法は、接続文字列を頻繁に変更する必要がない場合にのみ使用してください。
c# sql-server visual-studio