次の方法で共有


接続の確立

適用対象: .NET Framework .NET .NET Standard

ADO.NET のダウンロード

Microsoft SQL Server に接続するには、Microsoft SqlClient Data Provider for SQL Server の SqlConnection オブジェクトを使用します。 安全な接続文字列の格納および取得については、「接続情報の保護」を参照してください。

接続を閉じる

接続がプールに返されるようにするために、接続を使い終えたら必ず接続を終了することをお勧めします。 Visual Basic または C# の Using ブロックは、コードがこのブロックを終了したときに接続を破棄します。これは、未処理の例外の場合でも実行されます。 詳しくは、「using ステートメント」および「Using ステートメント」をご覧ください。

接続オブジェクトの Close または Dispose メソッドを使用することもできます。 明示的に終了されていない接続は、プールに追加したり返したりすることができないことがあります。 たとえば、スコープ外に出ても、明示的に終了されていない接続は、最大プール サイズに達した時点でその接続がまだ有効である場合にだけ接続プールに返されます。

Note

クラスの Finalize メソッド内で、ConnectionDataReader、またはその他のマネージド オブジェクトの Close または Dispose を呼び出さないでください。 終了処理では、クラスに直接所有されているアンマネージ リソースだけを解放してください。 クラスがアンマネージ リソースを所有していない場合は、クラス定義に Finalize メソッドを含めないでください。 詳しくは、「ガベージ コレクション」をご覧ください。

Note

接続が接続プールからフェッチされたり接続プールに返されたりしたとき、ログイン イベントとログアウト イベントはサーバーで発生しません。これは、接続プールに返されても接続は実際には終了していないためです。 詳しくは、「SQL Server の接続プール (ADO.NET)」をご覧ください。

SQL Server への接続

有効な文字列フォーマットの名前および値については、ConnectionString オブジェクトの SqlConnection プロパティを参照してください。 また、SqlConnectionStringBuilder クラスを使用すると、構文的に正しい接続文字列を実行時に作成できます。 詳細については、「接続文字列ビルダー」をご覧ください。

SQL Server のデータベースへの接続を開いて確立する方法を次のサンプル コードに示します。

using Microsoft.Data.SqlClient;

class Program1
{
    static void Main()
    {
        string s = GetConnectionString();

        OpenSqlConnection(s);
        Console.ReadLine();
    }

    private static void OpenSqlConnection(string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
            Console.WriteLine("State: {0}", connection.State);
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file, using the 
        // System.Configuration.ConfigurationSettings.AppSettings property 
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI;";
    }
}

統合セキュリティと ASP.NET

SQL Server 統合セキュリティ (セキュリティ接続とも呼ばれます) を使用すると、SQL Server に接続するときに保護が提供されます。これは、接続文字列でユーザー ID とパスワードが公開されず、接続を認証するための推奨される方法であるためです。 統合セキュリティでは、実行中のプロセスの現在のセキュリティ ID またはトークンを使用します。 デスクトップ アプリケーションの場合、この ID は、通常、現在ログオンしているユーザーの ID です。

ASP.NET アプリケーションのセキュリティ ID は、他のオプションのうちのいずれかに設定することもできます。 SQL Server に接続するときに ASP.NET アプリケーションが使用するセキュリティ ID の詳細については、「ASP.NET の偽装」、「ASP.NET の認証」、および「方法: Windows 統合セキュリティを使用して SQL Server にアクセスする」を参照してください。

関連項目