31. SqlConnection 클래스 – 속성, 메서드

SqlConnection 속성

 SqlConnection 개체는 연결에 관한 여러 가지 속성과 연결 상태에 관한 속성을 제공합니다. 다음은 주요한 속성입니다.

속성가져오기/설정하기설명
ConnectionString가져오기/설정하기연결 문자열
Connection Timeout가져오기/설정하기연결 대기 시간
Database가져오기데이터 베이스 명
DataSource가져오기SQL 서버 인스턴스 명
PacketSize가져오기패킷 사이즈
ServerVersion가져오기SQL 서버 버젼
State가져오기상태
WorkstationId가져오기데이터 베이스 클라이언트 식별 ID(지정하지 않으면 컴퓨터 이름)

  대부분의 속성은 연결 문자열로 지정한 값입니다. SqlConnection 속성 중에 State 속성은 연결 상태를 나타내는 속성으로 다음의 값 중에 하나를 갖습니다.

상태설명
Closed연결이 닫힌 상태
Open연결이 열린 상태
Connecting연결 열기를 시도하는 상태
Executing명령을 실행하고 있는 상태
Fetching데이터를 검색하고 있는 상태
Broken연결이 열린 이후에 끊어진 상태(연결을 닫은 후에 연결하여 사용해야 함)

SqlConnection 메서드

 SqlConnection 개체는 데이터 소스와 연결을 열거나 닫기 위한 메서드를 제공합니다. 그리고 연결이 열린 상태에서 여러 개의 작업을 하나의 논리 작업으로 수행하기 위한 트랜잭션 개체를 생성하는 메서드와 데이터 소스를 변경하는 메서드 등을 제공합니다. 다음은 SqlConnection 클래스에서 제공하는 주요 메서드입니다.

메서드설명
BeginTransaction트랜잭션을 시작(트랜잭션 개체를 생성하여 반환함)
ChangeDatabase열려있는 SqlConnection 개체의 데이터 베이스를 변경
Close연결 열기
Open연결 닫기

 트랜잭션은 여러 개의 작업을 하나의 논리 작업으로 묶어 작업 중간에 초기 상태로 복귀(Rollback)하거나 현재까지의 작업을 완료(Commit)시키는 것을 말합니다. 이를 사용하는 것은 데이터 소스에 연결을 열고 원하는 작업을 수행하는 SqlCommand 개체를 사용할 때 여러 작업을 논리적으로 묶기 위한 것이므로 여기에서 사용 예를 보이지 않고 SqlCommand 설명 후에 얘기할게요.

 ChangeDatabase 메서드는 SqlConnection 개체로 연결을 연 후에 데이터 베이스를 변경할 때 사용합니다.

static void Main(string[] args)
{
    try
    {
        string constr = @"Data Source=[서버 이름];Initial Catalog=[DB 명]; User ID=[ID];Password=[PW]";
        SqlConnection scon = new SqlConnection();
        scon.ConnectionString = constr;
        scon.Open(); //연결 열기
        Console.WriteLine("데이터 베이스:{0}", scon.Database);
        scon.ChangeDatabase("master");
        Console.WriteLine("데이터 베이스:{0}", scon.Database);
        scon.Close(); //연결 닫기
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}