| |
|
.NET TIPS
SQL Server接続文字列を簡単に作成するには?[2.0以降、C#、VB]
デジタルアドバンテージ 一色 政彦
2010/08/19 |
 |
|
.NETアプリケーションからSQL Serverにアクセスするには、接続に関する情報を1つの文字列にまとめた「接続文字列」が必要になる。例えば、次の文字列は接続文字列の一例である。
Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Projects\Sample\TestDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True |
|
| SQL Server接続文字列の例 |
| 接続文字列の中で用いられているキーワードについては、「MSDN:SqlConnection.ConnectionString プロパティ」で紹介されているキーワードの一覧を参考にしてほしい。 |
接続文字列には、さまざまなキーワードを使いこなす必要がある(使用できるキーワードの一覧については「MSDN:SqlConnection.ConnectionString プロパティ」を参照されたい)。そのため、何の手掛かりもなしに、ゼロから接続文字列を作成するのは大変だ。
そのような場面で接続文字列の作成を支援してくれるSqlConnectionStringBuilderクラス(System.Data.SqlClient名前空間)が、(.NET Framework 2.0以降では)提供されている。SqlConnectionStringBuilderクラスでは、接続文字列の各キーワードがプロパティとして用意されている。例えば、データソースの「DataSource」キーワードに対しては、DataSourceプロパティが用意されている。
次のコードは、実際にSqlConnectionStringBuilderクラスを用いて、上記の「SQL Server接続文字列の例」で示した文字列を作成するコンソール・アプリケーションのサンプルだ。
using System;
using System.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder();
builder.DataSource = @".\SQLEXPRESS";
builder.AttachDBFilename = @"C:\Projects\Sample\TestDB.mdf";
builder.IntegratedSecurity = true;
builder.UserInstance = true;
builder.MultipleActiveResultSets = true;
Console.WriteLine(builder.ConnectionString);
// 出力例:
// Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Projects\Sample\TestDB.mdf;Integrated Security=True;MultipleActiveResultSets=True;User Instance=True
Console.ReadLine(); // 実行を停止
}
}
|
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim builder As New SqlConnectionStringBuilder()
builder.DataSource = ".\SQLEXPRESS"
builder.AttachDBFilename = "C:\Projects\Sample\TestDB.mdf"
builder.IntegratedSecurity = True
builder.UserInstance = True
builder.MultipleActiveResultSets = True
Console.WriteLine(builder.ConnectionString)
' 出力例:
' Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Projects\Sample\TestDB.mdf;Integrated Security=True;MultipleActiveResultSets=True;User Instance=True
Console.ReadLine() ' 実行を停止
End Sub
End Module |
|
| SqlConnectionStringBuilderクラスを用いたSQL Server接続文字列の作成例(上:C#、下:VB) |
最終的な接続文字列は、SqlConnectionStringBuilderオブジェクトのConnectionStringプロパティにより得られる。
上記のコードを入力する際には、(次の画面に示すように)接続文字列の各キーワードはIntelliSenseで表示され、その説明も表示されるので、簡単に接続文字列を作成できる。
 |
| IntelliSenseで表示される接続文字列の各キーワードに関する説明 |
なお、上記のコードで示したSqlConnectionStringBuilderオブジェクトのプロパティを設定する方法だけではなく、下記のコードに示すように、SqlConnectionStringBuilderオブジェクトのインデクサ(C#)/既定のItemプロパティ(VB)経由で接続文字列の各キーワードを指定することも可能だ。
builder["Data Source"] = "(local)"; |
builder("Data Source") = "(local)" |
|
| SqlConnectionStringBuilderクラスを用いたSQL Server接続文字列の作成例(上:C#、下:VB) |
また、逆に既存の接続文字列からSqlConnectionStringBuilderオブジェクトを作成することもできる。
これには、単にSqlConnectionStringBuilderクラスのインスタンスを作成する際に、コンストラクタに引数として接続文字列を渡せばよい。あるいは、SqlConnectionStringBuilderオブジェクトのClearメソッドを呼び出して、いったん接続文字列に関する情報をクリアしたうえで、ConnectionStringプロパティに接続文字列を設定してもよい。
利用可能バージョン:.NET Framework 2.0以降
カテゴリ:データベース 処理対象:接続文字列
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:SqlConnectionStringBuilderクラス(System.Data.SqlClient名前空間) |
|
|
generated by
|
|
TechTargetジャパン
キャリアアップ

**先週の人気講座ランキング**
〜 Android編 〜