다음을 통해 공유


OleDbConnection.ConnectionString 속성

정의

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

public:
 virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
 property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

속성 값

데이터 원본 이름 및 초기 연결을 설정하는 데 필요한 기타 매개 변수를 포함하는 OLE DB 공급자 연결 문자열입니다. 기본값은 빈 문자열입니다.

구현

특성

예외

잘못된 연결 문자열 인수가 제공되었거나 필수 연결 문자열 인수가 제공되지 않았습니다.

예제

다음 예제에서는 연결 문자열에 OleDbConnection 해당 속성 중 일부를 만들고 설정합니다.

static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
                connection.ServerVersion, connection.DataSource);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Server Version: {0} DataSource: {1}", _
                connection.ServerVersion, connection.DataSource)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub

설명

ConnectionString OLE DB 연결 문자열 형식을 다음과 같은 예외와 최대한 가깝게 일치하도록 설계되었습니다.

  • "Provider = value " 절이 필요합니다. 그러나 .NET Framework Data Provider for OLE DB는 MSDASQL(OLE DB Provider for ODBC)을 지원하지 않으므로 "Provider = MSDASQL"을 사용할 수 없습니다. ODBC 데이터 원본에 액세스하려면 네임스페이스에 있는 개체를 System.Data.Odbc 사용합니다OdbcConnection.

  • ODBC 또는 ADO와 달리 반환되는 연결 문자열은 사용자 집합 ConnectionString과 같으며, 설정된 경우 Persist Security Info 보안 정보를 뺀 값(기본값)입니다 false . 키워드 true 를 사용하지 않는 한 Persist Security Info .NET Framework Data Provider for OLE DB는 연결 문자열에 암호를 유지하거나 반환하지 않습니다. 높은 수준의 보안을 유지하려면 키워드를 로 Persist Security Info 설정false하여 사용하는 Integrated Security 것이 좋습니다.

ConnectionString 속성을 사용하여 다양한 데이터 원본에 연결할 수 있습니다. 다음 예제에서는 몇 가지 가능한 연결 문자열을 보여 줍니다.

"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"

"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"

연결 문자열에 Data Source 키워드가 지정되지 않은 경우 공급자는 사용할 수 있는 경우 로컬 서버에 연결을 시도합니다.

연결 문자열에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하세요.

연결이 ConnectionString 닫힌 경우에만 속성을 설정할 수 있습니다. 대부분의 연결 문자열 값에는 해당 읽기 전용 속성이 있습니다. 연결 문자열이 설정되면 오류가 검색되는 경우를 제외하고 이러한 속성이 업데이트됩니다. 이 경우 어떤 속성도 업데이트되지 않습니다. OleDbConnection 속성은 에 포함된 ConnectionString설정만 반환합니다.

닫힌 연결에서 ConnectionString 다시 설정하면 모든 연결 문자열 값 및 관련 속성이 다시 설정됩니다. 여기에는 암호가 포함됩니다. 예를 들어 "Initial Catalog= AdventureWorks"가 포함된 연결 문자열을 설정한 다음 연결 문자열을 "Provider= SQLOLEDB;로 다시 설정하는 경우 데이터 원본= MySQLServer; IntegratedSecurity=SSPI", Database 속성은 더 이상 AdventureWorks로 설정되지 않습니다. (연결 문자열의 초기 카탈로그 값은 속성에 Database 해당합니다.)

속성이 설정되면 연결 문자열의 예비 유효성 검사가 수행됩니다. , Connect Timeout또는 Persist Security InfoOLE DB Services 문자열에 Provider포함된 값이 선택됩니다. 애플리케이션이 메서드를 호출하면 Open 연결 문자열의 유효성이 완전히 검사됩니다. 연결 문자열에 유효하지 않거나 지원되지 않는 속성이 포함되어 있으면 런타임 예외(예: ArgumentException)가 생성됩니다.

주의

UDL(유니버설 데이터 링크) 파일에 대한 OleDbConnection 연결 정보를 제공할 수 있습니다. 그러나 이렇게 하지 않아야 합니다. UDL 파일은 암호화되지 않으며 연결 문자열 정보를 명확한 텍스트로 노출합니다. UDL 파일은 애플리케이션에 대해 외부 파일 기반 리소스이므로 .NET Framework를 사용하여 보호할 수 없습니다.

연결 문자열의 기본 형식에는 세미콜론으로 구분된 일련의 키워드/값 쌍이 포함됩니다. 등호(=)는 각 키워드와 해당 값을 연결합니다. 세미콜론, 작은따옴표 문자 또는 큰따옴표 문자를 포함하는 값을 포함하려면 값을 큰따옴표로 묶어야 합니다. 값에 세미콜론과 큰따옴표 문자가 모두 포함된 경우 값을 작은따옴표로 묶을 수 있습니다. 작은따옴표는 값이 큰따옴표 문자로 시작하는 경우에도 유용합니다. 반대로 값이 작은따옴표로 시작하는 경우 큰따옴표를 사용할 수 있습니다. 값에 작은따옴표와 큰따옴표 문자가 모두 포함된 경우 값을 묶는 데 사용되는 따옴표 문자는 값 내에서 발생할 때마다 두 배가 되어야 합니다.

문자열 값에 앞 또는 후행 공백을 포함하려면 값을 작은따옴표 또는 큰따옴표로 묶어야 합니다. 따옴표로 묶어도 정수, 부울 또는 열거형 값 주위의 선행 또는 후행 공백은 무시됩니다. 그러나 문자열 리터럴 키워드 또는 값 내의 공백은 유지됩니다. 작은따옴표 문자가 값의 첫 번째 또는 마지막 문자가 아니면 구분 기호(예: Data Source= my'Server 또는 Data Source= my"Server)를 사용하지 않고 연결 문자열 내에서 작은따옴표나 큰따옴표를 사용할 수 있습니다.

키워드 또는 값에 등호(=)를 포함하려면 다른 등호 앞에 와야 합니다. 예를 들어 다음 가상 연결 문자열에서 키워드는 "key=word"이고 값은 "value"입니다.

"key==word=value"

연결 문자열에서 키워드=값 쌍의 특정 키워드가 여러 번 발생하는 경우 마지막으로 나열된 키워드가 값 집합에 사용됩니다.

키워드는 대/소문자를 구분하지 않습니다.

주의

예를 들어 대화 상자에서 사용자 ID 및 암호 정보를 검색하고 연결 문자열에 추가할 때 사용자 입력을 기반으로 연결 문자열을 생성할 때는 주의해야 합니다. 애플리케이션은 사용자가 이러한 값에 추가 연결 문자열 매개 변수를 포함할 수 없도록 해야 합니다. 예를 들어 암호를 "validpassword; 다른 데이터베이스에 연결하려는 경우 database= somedb". OLE DB 연결에 확장 속성 연결 문자열 매개 변수를 사용하는 경우 가능한 경우 사용자 ID와 암호를 명확한 텍스트로 저장하지 않아야 하고 기본 설정 Persist Security Info= false 이 매개 변수에 영향을 Extended Properties 주지 않으므로 사용자 ID 및 암호를 전달하지 마세요.

적용 대상

추가 정보