30. [ADO.NET] SqlConection 생성자

 SqlConnection 클래스에는 두 가지 생성자를 제공합니다.

SqlConnection();
SqlConnection(string conStr);

▷SqlConnection();

 연결할 데이터 소스를 지정하지 않은 상태의 SqlConnection 개체를 생성합니다. 연결을 열려면 연결 문자열을 ConnectionString 속성에 지정하여야 합니다.

속성초기값설명
ConnectionStringstring.Empty연결 문자열
ConnectionTimeout15(분)연결 대기시간
Databasestring.Empty데이터 베이스 명
DataSourcestring.EmptySQL 서버 인스턴스 명

  만약, 연결 문자열을 지정하지 않고 열기를 시도하면 InvalidOperationException이 발생하며 예외 메시지 속성 값은 “ConnectionString 속성이 초기화되지 않았습니다.” 입니다.

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(); //연결 열기
        //작업 수행
        scon.Close(); //연결 닫기
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}

▷SqlConnection(string conStr);

 연결 문자열을 인자로 전달하여 SqlConnection 개체를 생성합니다. 연결 문자열에는 데이터 소스의 이름과 데이터 베이스 이름, 계정 정보 등을 지정할 수 있습니다.

 연결 문자열은 연결에 필요한 여러 종류의 속성을 약속한 키워드와 대입 연산자와 값을 세미콜론으로 구분하여 지정할 수 있습니다.

string constr = @”Data Source=My Com\SqlServer;Initial Catalog=TestDB; User ID=abc;Password=123″;

  다음은 연결 문자열에 사용할 수 있는 주요한 키워드입니다. 이 외에도 세부 설정을 위한 다양한 키워드를 제공하고 있는데 자세한 사항은 MSDN을 참고하세요.

키워드초기값설명
Addr, Address,Data Source,Server,Network Address없음데이터 소스(SQL 서버 인스턴스 명)
Initial Catalog,Database없음데이터 베이스 명
User ID, UID없음SQL 로긴 계정
Password, PWD없음SQL 로긴 계정의 비밀 번호
Connect Timeout,Connection Timeout,Timeout15(초)연결 대기 시간(초)
Packet Size8192(바이트)SQL 서버와 통신 네트워크 패킷사이즈 512~32768

  만약 연결 문자열에 사용할 수 없는 키워드가 있다면 ArgumentException이 발생합니다. 그리고 연결에 필요한 값이 잘못 지정하였을 때에는 Open 메서드를 호출할 때 예외가 발생합니다.