次の方法で共有


SqlConnection クラス

SQL Server データベースへの開いた接続を表します。このクラスは継承できません。

この型のすべてのメンバの一覧については、SqlConnection メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.SqlClient.SqlConnection

NotInheritable Public Class SqlConnection
   Inherits Component
   Implements IDbConnection, ICloneable
[C#]
public sealed class SqlConnection : Component, IDbConnection,
   ICloneable
[C++]
public __gc __sealed class SqlConnection : public Component,
   IDbConnection, ICloneable
[JScript]
public class SqlConnection extends Component implements
   IDbConnection, ICloneable

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

SqlConnection オブジェクトは、SQL Server データ ソースへの一意なセッションを表します。クライアント/サーバー データベース システムでは、サーバーへのネットワーク接続に相当します。 SqlConnection は、Microsoft SQL Server データベースへの接続のパフォーマンスを向上させるために、 SqlDataAdapter および SqlCommand と組み合わせて使用します。すべてのサードパーティ SQL サーバー製品、および OLE DB をサポートするその他のデータ ソースでは、 OleDbConnection を使用してください。

SqlConnection のインスタンスを作成すると、すべてのプロパティが初期値に設定されます。これらの初期値の一覧については、 SqlConnection コンストラクタのトピックを参照してください。

SqlConnection は、適用範囲外では閉じられません。そのため、 Close または Dispose を呼び出して、明示的に接続を閉じる必要があります。

メモ   パフォーマンスの高いアプリケーションを配置するには、接続プールを使用する必要があります。.NET Framework Data Provider for SQL Server を使用するときは、プロバイダが接続プールを自動的に管理するため、接続プールを有効にする必要はありません。ただし、その場合でも、一部の設定は変更できます。.NET Framework Data Provider for SQL Server による接続プールの使用の詳細については、「 .NET Framework Data Provider for SQL Server の接続プール 」を参照してください。

SqlCommand を実行するメソッドが SqlException を生成した場合、重大度レベルが 19 以下のときは、 SqlConnection は開いたままになります。重大度レベルが 20 以上のときは、通常、サーバーは SqlConnection を閉じます。ただし、ユーザーは接続を再び開いて、処理を継続できます。

SqlConnection オブジェクトのインスタンスを作成するアプリケーションは、宣言セキュリティまたは強制セキュリティの要求を設定することによって、直接的または間接的な呼び出し元すべてに対して、コードへの適切なアクセス許可を要求できます。 SqlConnection は、 SqlClientPermission オブジェクトを使用して、セキュリティ要求を作成します。ユーザーは、 SqlClientPermissionAttribute オブジェクトを使用して、コードに適切なアクセス許可が設定されているかどうかを確認できます。また、ユーザーおよび管理者は、 コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用して、コンピュータ、ユーザー、エンタープライズの各レベルでセキュリティ ポリシーを変更できます。詳細については、「 アプリケーションの保護 」を参照してください。

メモ   Microsoft .NET Framework Version 1.0 をご使用の場合、 Open を使用して SQL Server に接続するためには、名前付きの許可セット FullTrust が必要です。.NET Framework Version 1.1 をご使用の場合、その必要はありません。詳細については、「 アクセス許可の要求 」および「 名前付きアクセス許可セット 」を参照してください。

サーバーから受け取る警告メッセージと情報メッセージの処理の詳細については、「 接続イベントの使用 」を参照してください。

使用例

[Visual Basic, C#, C++] SqlCommand および SqlConnection を作成する例を次に示します。 SqlConnection を開き、 SqlCommandConnection として設定します。次に、 ExecuteNonQuery を呼び出し、接続を閉じます。この例では、 ExecuteNonQuery に、接続文字列と Transact-SQL INSERT ステートメントのクエリ文字列が渡されます。

 
Public Sub InsertRow(myConnectionString As String)
    ' If the connection string is null, use a default.
    If myConnectionString = "" Then
        myConnectionString = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;"
    End If
    Dim myConnection As New SqlConnection(myConnectionString)
    Dim myInsertQuery As String = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
    Dim myCommand As New SqlCommand(myInsertQuery)
    myCommand.Connection = myConnection
    myConnection.Open()
    myCommand.ExecuteNonQuery()
    myCommand.Connection.Close()
End Sub 'SelectSqlClientSrvRows

[C#] 
public void InsertRow(string myConnectionString) 
 {
    // If the connection string is null, use a default.
    if(myConnectionString == "") 
    {
       myConnectionString = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;";
    }
    SqlConnection myConnection = new SqlConnection(myConnectionString);
    string myInsertQuery = "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
    SqlCommand myCommand = new SqlCommand(myInsertQuery);
    myCommand.Connection = myConnection;
    myConnection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();
 }

[C++] 
public:
void InsertRow(String* myConnectionString) 
 {
    // If the connection string is null, use a default.
    if(myConnectionString->Equals(S""))
    {
       myConnectionString = S"Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;";
    }
    SqlConnection* myConnection = new SqlConnection(myConnectionString);
    String* myInsertQuery = S"INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
    SqlCommand* myCommand = new SqlCommand(myInsertQuery);
    myCommand->Connection = myConnection;
    myConnection->Open();
    myCommand->ExecuteNonQuery();
    myCommand->Connection->Close();
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.SqlClient

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

SqlConnection メンバ | System.Data.SqlClient 名前空間 | SqlDataAdapter | SqlCommand