SqlConnection 클래스

정의

SQL Server 데이터베이스에 대한 연결을 나타냅니다. 이 클래스는 상속될 수 없습니다.

public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
상속
SqlConnection
상속
상속
구현

예제

다음 예제에서는 및 를 SqlCommandSqlConnection만듭니다. SqlConnection 열고로 설정 합니다 Connection 에 대 한는 SqlCommand. 그런 다음, 이 예제에서는 를 호출합니다 ExecuteNonQuery. 이를 ExecuteNonQuery 위해 는 SqlConnection 및 Transact-SQL INSERT 문인 쿼리 문자열을 전달합니다. 코드가 using 블록을 종료하면 연결이 자동으로 닫힙니다.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

설명

개체는 SqlConnection SQL Server 데이터 원본에 대한 고유한 세션을 나타냅니다. 클라이언트/서버 데이터베이스 시스템을 사용하면 서버에 대한 네트워크 연결과 동일합니다. SqlConnection은 및 와 SqlDataAdapterSqlCommand 함께 사용되어 Microsoft SQL Server 데이터베이스에 연결할 때 성능을 향상합니다. 모든 타사 SQL Server 제품 및 기타 OLE DB 지원 데이터 원본의 경우 를 사용합니다OleDbConnection.

SqlConnectioninstance 만들면 모든 속성이 초기 값으로 설정됩니다. 이러한 값의 목록을 보려면 참조는 SqlConnection 생성자입니다.

연결 문자열 키워드 목록은 를 참조하세요ConnectionString.

SqlConnection scope 나가면 닫혀 있지 않습니다. 따라서 또는 Dispose를 호출 Close 하여 연결을 명시적으로 닫아야 합니다. CloseDispose 는 기능적으로 동일합니다. 연결 풀링 값 Pooling 이 또는 yestrue 설정된 경우 기본 연결이 연결 풀로 다시 반환됩니다. 반면, 가 또는 nofalse 설정된 경우 Pooling 서버에 대한 기본 연결이 실제로 닫힙니다.

참고

연결이 연결 풀에서 반환될 경우에는 실제로 해제된 것이 아니므로 연결이 연결 풀에서 반입되거나 연결 풀로 반환되는 경우 서버에서 로그인 및 로그아웃 이벤트가 발생하지 않습니다. 자세한 내용은 SQL Server 연결 풀링(ADO.NET)을 참조하세요.

연결이 항상 닫혀 있는지 확인하려면 다음 코드 조각과 같이 블록 내에서 using 연결을 엽니다. 이렇게 하면 코드가 블록을 종료할 때 연결이 자동으로 닫힙니다.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

참고

고성능 애플리케이션을 배포 하려면 연결 풀링을 사용 해야 합니다. SQL Server .NET Framework 데이터 공급자를 사용하는 경우 일부 설정을 수정할 수 있지만 공급자가 자동으로 관리하므로 연결 풀링을 사용하도록 설정할 필요가 없습니다. 자세한 내용은 SQL Server 연결 풀링(ADO.NET)을 참조하세요.

SqlException 가 를 실행하는 SqlCommandSqlConnection 메서드에 의해 생성되는 경우 심각도 수준이 19 이하일 때 가 열린 상태로 유지됩니다. 심각도 수준이 20 이상인 경우 서버는 일반적으로 를 닫습니다 SqlConnection. 그러나 사용자는 연결을 다시 열고 계속할 수 있습니다.

인스턴스를 만드는 애플리케이션을 SqlConnection 개체는 모든 직접 및 간접 호출자가 선언적 또는 명령적 보안이 요구를 설정 하 여 코드에 충분 한 권한이 필요할 수 있습니다. SqlConnection 는 개체를 사용하여 보안 요구를 만듭니다 SqlClientPermission . 사용자는 개체를 사용하여 SqlClientPermissionAttribute 코드에 충분한 권한이 있는지 확인할 수 있습니다. 사용자 및 관리자는 Caspol.exe(코드 액세스 보안 정책 도구) 를 사용하여 컴퓨터, 사용자 및 엔터프라이즈 수준에서 보안 정책을 수정할 수도 있습니다. 자세한 내용은 .NET의 보안을 참조하세요. 보안 요구를 사용하는 방법을 보여 주는 예제는 코드 액세스 보안 및 ADO.NET.

서버에서 경고 및 정보 메시지를 처리하는 방법에 대한 자세한 내용은 연결 이벤트를 참조하세요. SQL Server 엔진 오류 및 오류 메시지에 대한 자세한 내용은 데이터베이스 엔진 이벤트 및 오류를 참조하세요.

주의

공유 메모리 대신 TCP를 강제 적용할 수 있습니다. tcp: 를 연결 문자열 서버 이름에 접두사로 추가하거나 localhost를 사용할 수 있습니다.

생성자

SqlConnection()

SqlConnection 클래스의 새 인스턴스를 초기화합니다.

SqlConnection(String)

연결 문자열을 포함한 문자열이 제공된 경우 SqlConnection 클래스의 새 인스턴스를 초기화합니다.

SqlConnection(String, SqlCredential)

연결 문자열이 지정되면 SqlConnection 클래스의 새 인스턴스를 초기화합니다. 연결 문자열은 사용자 ID와 암호를 포함하는 Integrated Security = trueSqlCredential 개체를 사용하지 않습니다.

속성

AccessToken

연결용 액세스 토큰을 가져오거나 설정합니다.

CanCreateBatch

DbConnection 인스턴스가 DbBatch 클래스를 지원하는지를 나타내는 값을 가져옵니다.

(다음에서 상속됨 DbConnection)
CanRaiseEvents

구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
ClientConnectionId

연결 시도 성공 또는 실패 여부와 관계없이 가장 최근에 연결 시도된 연결 ID입니다.

ColumnEncryptionKeyCacheTtl

항상 암호화 기능에 대한 열 암호화 키 캐시에 있는 열 암호화 키 항목에 대한 Time-To-Live를 가져오거나 설정합니다. 기본값은 2시간입니다. 0은 캐싱이 전혀 수행되지 않음을 의미합니다.

ColumnEncryptionQueryMetadataCacheEnabled

항상 암호화가 설정된 데이터베이스에 대해 실행되는 매개 변수가 있는 쿼리에 대해 쿼리 메타데이터 캐싱이 사용되도록 설정(true)되는지 또는 사용되지 않도록 설정(false)되는지를 나타내는 값을 가져오거나 설정합니다. 기본값은 true입니다.

ColumnEncryptionTrustedMasterKeyPaths

데이터베이스 서버에 대해 신뢰할 수 있는 키 경로 목록을 설정할 수 있습니다. 애플리케이션 쿼리를 처리하는 동안 드라이버가 목록에 없는 키 경로를 수신하면 쿼리가 실패합니다. 이 속성은 손상된 SQL Server가 가짜 키 쌍을 제공하여 키 저장소 자격 증명을 유출하는 보안 공격에 대한 추가 보호를 제공합니다.

ConnectionString

SQL Server 데이터베이스를 여는 데 사용되는 문자열을 가져오거나 설정합니다.

ConnectionTimeout

시도를 종료하고 오류를 생성하기 전에 연결하는 동안 대기할 시간(초 단위)을 가져옵니다.

Container

IContainer을 포함하는 Component를 가져옵니다.

(다음에서 상속됨 Component)
Credential

이 연결에 대해 SqlCredential 개체를 가져오거나 설정합니다.

Database

현재 데이터베이스 이름이나 연결이 열린 후 사용할 데이터베이스의 이름을 가져옵니다.

DataSource

연결할 SQL Server 인스턴스의 이름을 가져옵니다.

DbProviderFactory

DbProviderFactoryDbConnection를 가져옵니다.

(다음에서 상속됨 DbConnection)
DesignMode

Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
Events

Component에 연결된 이벤트 처리기의 목록을 가져옵니다.

(다음에서 상속됨 Component)
FireInfoMessageEventOnUserErrors

FireInfoMessageEventOnUserErrors 속성을 가져오거나 설정합니다.

PacketSize

SQL Server의 인스턴스와 통신하는 데 사용하는 네트워크 패킷의 크기(바이트)를 가져옵니다.

ServerVersion

클라이언트가 연결될 SQL Server 인스턴스의 버전을 포함한 문자열을 가져옵니다.

Site

ComponentISite를 가져오거나 설정합니다.

(다음에서 상속됨 Component)
State

연결에 수행된 최근 네트워크 작업 중 SqlConnection의 상태를 나타냅니다.

StatisticsEnabled

true(으)로 설정하면 현재 연결에 대한 통계 수집이 사용하도록 설정됩니다.

WorkstationId

데이터베이스 클라이언트를 식별하는 문자열을 가져옵니다.

메서드

BeginDbTransaction(IsolationLevel)

파생 클래스에서 재정의되는 경우 데이터베이스 트랜잭션을 시작합니다.

(다음에서 상속됨 DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

데이터베이스 트랜잭션을 비동기적으로 시작합니다.

(다음에서 상속됨 DbConnection)
BeginTransaction()

데이터베이스 트랜잭션을 시작합니다.

BeginTransaction(IsolationLevel)

지정된 격리 수준으로 데이터베이스 트랜잭션을 시작합니다.

BeginTransaction(IsolationLevel, String)

지정된 격리 수준과 트랜잭션 이름으로 데이터베이스 트랜잭션을 시작합니다.

BeginTransaction(String)

지정된 트랜잭션 이름으로 데이터베이스 트랜잭션을 시작합니다.

BeginTransactionAsync(CancellationToken)

비동기적으로 데이터베이스 트랜잭션을 시작합니다.

(다음에서 상속됨 DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

비동기적으로 데이터베이스 트랜잭션을 시작합니다.

(다음에서 상속됨 DbConnection)
ChangeDatabase(String)

열려 있는 SqlConnection의 현재 데이터베이스를 변경합니다.

ChangeDatabaseAsync(String, CancellationToken)

열려 있는 연결의 현재 데이터베이스를 비동기적으로 변경합니다.

(다음에서 상속됨 DbConnection)
ChangePassword(String, SqlCredential, SecureString)

SqlCredential 개체에 지정된 사용자에 대한 SQL Server 암호를 변경합니다.

ChangePassword(String, String)

연결 문자열에 지정된 사용자의 SQL Server 암호를 제공된 새 암호로 변경합니다.

ClearAllPools()

연결 풀을 비웁니다.

ClearPool(SqlConnection)

지정된 연결과 관련된 연결 풀을 비웁니다.

Close()

데이터베이스에 대한 연결을 닫습니다. 열린 연결을 닫기 위해 기본적으로 이 메서드를 사용합니다.

CloseAsync()

데이터베이스에 대한 연결을 비동기적으로 닫습니다.

(다음에서 상속됨 DbConnection)
CreateBatch()

DbBatch 클래스를 구현하는 공급자 클래스의 새 인스턴스를 반환합니다.

(다음에서 상속됨 DbConnection)
CreateCommand()

SqlConnection과 연결된 SqlCommand 개체를 만들고 반환합니다.

CreateDbBatch()

파생 클래스에서 재정의되는 경우 클래스를 구현하는 공급자 클래스의 새 instance 반환합니다DbBatch.

(다음에서 상속됨 DbConnection)
CreateDbCommand()

파생 클래스에서 재정의되는 경우 현재 연결과 관련된 DbCommand 개체를 만들고 반환합니다.

(다음에서 상속됨 DbConnection)
CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 DbConnection)
Dispose()

Component에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 Component)
Dispose(Boolean)

DbConnection에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

(다음에서 상속됨 DbConnection)
Dispose(Boolean)

Component에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

(다음에서 상속됨 Component)
DisposeAsync()

연결 개체를 비동기적으로 삭제합니다.

(다음에서 상속됨 DbConnection)
EnlistDistributedTransaction(ITransaction)

지정된 트랜잭션에 분산 트랜잭션으로 참여합니다.

EnlistTransaction(Transaction)

지정된 트랜잭션에 분산 트랜잭션으로 참여합니다.

EnlistTransaction(Transaction)

지정된 트랜잭션에 참여합니다.

(다음에서 상속됨 DbConnection)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetSchema()

SqlConnection의 데이터 소스에 대한 구성표 정보를 반환합니다. 구성표에 대한 자세한 내용은 SQL Server 구성표 컬렉션을 참조하세요.

GetSchema()

DbConnection의 데이터 소스에 대한 구성표 정보를 반환합니다.

(다음에서 상속됨 DbConnection)
GetSchema(String)

스키마 이름에 대해 지정된 문자열을 사용하여 이 SqlConnection의 데이터 소스에 대한 스키마 정보를 반환합니다.

GetSchema(String)

스키마 이름에 대해 지정된 문자열을 사용하여 이 DbConnection의 데이터 소스에 대한 스키마 정보를 반환합니다.

(다음에서 상속됨 DbConnection)
GetSchema(String, String[])

스키마 이름에 대해 지정된 문자열과 제한 값에 대해 지정된 문자열 배열을 사용하여 이 SqlConnection의 데이터 소스에 대한 스키마 정보를 반환합니다.

GetSchema(String, String[])

스키마 이름에 대해 지정된 문자열과 제한 값에 대해 지정된 문자열 배열을 사용하여 이 DbConnection의 데이터 소스에 대한 스키마 정보를 반환합니다.

(다음에서 상속됨 DbConnection)
GetSchemaAsync(CancellationToken)

GetSchema()의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. cancellationToken을 선택적으로 적용할 수 있습니다. 기본 구현은 동기 GetSchema() 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. GetSchema()에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

(다음에서 상속됨 DbConnection)
GetSchemaAsync(String, CancellationToken)

GetSchema(String)의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. cancellationToken을 선택적으로 적용할 수 있습니다. 기본 구현은 동기 GetSchema(String) 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. GetSchema(String)에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

(다음에서 상속됨 DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

GetSchema(String, String[])의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. cancellationToken을 선택적으로 적용할 수 있습니다. 기본 구현은 동기 GetSchema(String, String[]) 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. GetSchema(String, String[])에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

(다음에서 상속됨 DbConnection)
GetService(Type)

Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다.

(다음에서 상속됨 Component)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

StateChange 이벤트를 발생시킵니다.

(다음에서 상속됨 DbConnection)
Open()

ConnectionString로 지정된 속성 설정을 사용하여 데이터베이스 연결을 엽니다.

OpenAsync()

Open()으로 지정된 설정을 사용하여 데이터베이스 연결을 여는 ConnectionString의 비동기 버전입니다. 이 메서드는 CancellationToken.None을 사용하여 가상 메서드 OpenAsync(CancellationToken)를 호출합니다.

(다음에서 상속됨 DbConnection)
OpenAsync(CancellationToken)

Open()으로 지정된 속성 설정을 사용하여 데이터베이스 연결을 여는 ConnectionString의 비동기 버전입니다. 취소 토큰은 연결 제한 시간이 경과하기 전에 작업을 중단하는 요청에 사용할 수 있습니다. 예외는 반환된 작업을 통해 전파됩니다. 연결하지 못하고 연결 제한 시간이 경과하는 경우 반환된 작업이 예외와 함께 오류가 발생한 것으로 표시됩니다. 구현은 풀링된 연결 및 풀링되지 않은 연결에 대한 호출 스레드를 차단하지 않고 Task를 반환합니다.

OpenAsync(CancellationToken)

Open()의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. 취소 토큰은 선택적으로 적용될 수 있습니다.

기본 구현은 동기 Open() 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. Open에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

반환된 작업이 완료될 때까지 DbConnection 개체의 다른 메서드 및 속성을 호출하지 마십시오.

(다음에서 상속됨 DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

사용자 지정 암호화 키 저장소 공급자를 등록합니다.

ResetStatistics()

통계 수집을 활성화하면 모든 값이 0으로 다시 설정됩니다.

RetrieveStatistics()

메서드가 호출된 시점에서 통계의 이름 값 쌍 컬렉션을 반환합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
ToString()

Component의 이름이 포함된 String을 반환합니다(있는 경우). 이 메서드는 재정의할 수 없습니다.

(다음에서 상속됨 Component)

이벤트

Disposed

Dispose() 메서드를 호출하여 구성 요소를 삭제할 때 발생합니다.

(다음에서 상속됨 Component)
InfoMessage

SQL Server에서 경고나 정보 메시지를 반환할 때 발생합니다.

StateChange

연결 상태가 변경될 때 발생합니다.

StateChange

연결 상태가 변경될 때 발생합니다.

(다음에서 상속됨 DbConnection)

명시적 인터페이스 구현

ICloneable.Clone()

현재 인스턴스의 복사본인 새 개체를 만듭니다.

IDbConnection.BeginTransaction()

데이터베이스 트랜잭션을 시작합니다.

IDbConnection.BeginTransaction()

데이터베이스 트랜잭션을 시작합니다.

(다음에서 상속됨 DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

지정된 IsolationLevel 값을 사용하여 데이터베이스 트랜잭션을 시작합니다.

IDbConnection.BeginTransaction(IsolationLevel)

지정된 격리 수준으로 데이터베이스 트랜잭션을 시작합니다.

(다음에서 상속됨 DbConnection)
IDbConnection.CreateCommand()

연결과 관련된 명령 개체를 만들고 반환합니다.

IDbConnection.CreateCommand()

현재 연결과 관련된 DbCommand 개체를 만들고 반환합니다.

(다음에서 상속됨 DbConnection)

적용 대상

추가 정보