SqlConnection.Close 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터베이스에 대한 연결을 닫습니다. 열린 연결을 닫기 위해 기본적으로 이 메서드를 사용합니다.
public:
override void Close();
public:
virtual void Close();
public override void Close ();
public void Close ();
override this.Close : unit -> unit
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overrides Sub Close ()
Public Sub Close ()
구현
예외
연결을 여는 동안 발생한 연결 수준 오류입니다.
예제
다음 예제에서는 을 SqlConnection만들고, 열고, 해당 속성 중 일부를 표시합니다. 연결은 블록의 using
끝에서 자동으로 닫힙니다.
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);
}
}
Private Sub OpenSqlConnection(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
Console.WriteLine("State: {0}", connection.State)
End Using
End Sub
설명
Close 메서드 보류 중인 트랜잭션을 모두 롤백합니다. 그런 다음 연결 풀에 대 한 연결을 해제 하거나 연결 풀링을 사용 하지 않도록 설정 하는 경우 연결을 닫습니다.
참고
보류 중인 트랜잭션이 Transact-SQL을 사용하여 시작되거나 BeginTransaction 연결 풀링을 사용하도록 설정된 경우 연결이 다시 설정되면 자동으로 롤백됩니다. 연결 풀링이 꺼져 있으면 가 호출된 후 SqlConnection.Close
트랜잭션이 롤백됩니다. 를 통해 System.Transactions 시작된 트랜잭션은 인프라를 System.Transactions
통해 제어되며 의 영향을 SqlConnection.Close
받지 않습니다.
애플리케이션에서 호출할 수 Close 번 이상. 예외가 생성되지 않습니다.
가 SqlConnection scope 나가면 닫혀 있지 않습니다. 따라서 또는 Dispose
를 호출 Close
하여 연결을 명시적으로 닫아야 합니다.
Close
및 Dispose
는 기능적으로 동일합니다. 연결 풀링 값 Pooling
이 또는 yes
로 true
설정된 경우 기본 연결이 연결 풀로 다시 반환됩니다. 반면, 가 또는 no
로 false
설정된 경우 Pooling
서버에 대한 기본 연결이 닫힙니다.
참고
연결이 연결 풀에서 반환될 경우에는 실제로 해제된 것이 아니므로 연결이 연결 풀에서 반입되거나 연결 풀로 반환되는 경우 서버에서 로그인 및 로그아웃 이벤트가 발생하지 않습니다. 자세한 내용은 SQL Server 연결 풀링(ADO.NET)을 참조하세요.
주의
클래스의 메서드에서 Connection, DataReader 또는 기타 관리되는 개체에서 Finalize
또는 Dispose
를 호출 Close
하지 마세요. 종료자에서 클래스가 직접 소유하는 관리되지 않는 리소스만 해제해야 합니다. 클래스에 관리되지 않는 리소스가 없는 경우 클래스 정의에 Finalize
메서드를 포함하지 마세요. 자세한 내용은 가비지 수집을 참조하세요.
적용 대상
추가 정보
.NET