다음을 통해 공유


DbConnectionStringBuilder 클래스

정의

강력한 형식의 연결 문자열 작성기에 대한 기본 클래스를 제공합니다.

public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
상속
DbConnectionStringBuilder
파생
구현

예제

다음 콘솔 애플리케이션, Microsoft Jet 데이터베이스 및 SQL Server 데이터베이스에 대 한 두 개의 연결 문자열을 작성합니다. 각 경우에 코드는 제네릭 DbConnectionStringBuilder 클래스를 사용하여 연결 문자열 만든 다음 instance 속성을 강력한 형식의 DbConnectionStringBuilder 연결 클래스의 생성자에 전달 ConnectionString 합니다. 이 작업은 필요하지 않습니다. 코드는 강력한 형식의 개별 연결 문자열 작성기 인스턴스를 만들 수도 있습니다. 또한 기존 연결 문자열을 구문 분석 하 고 연결 문자열의 내용을 조작 하는 여러 가지 방법을 보여 줍니다.

static void Main()
{
    DbConnectionStringBuilder builder =
        new DbConnectionStringBuilder();
    builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
    builder.Add("Jet OLEDB:Database Password", "*******");
    builder.Add("Jet OLEDB:System Database",
        @"c:\MyData\Workgroup.mdb");
    // Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1);

    // The DbConnectionStringBuilder class
    // is database agnostic, so it's possible to
    // build any type of connection string using
    // this class.

    // The ConnectionString property may have been
    // formatted by the DbConnectionStringBuilder class.
    OleDbConnection oledbConnect = new
        OleDbConnection(builder.ConnectionString);
    Console.WriteLine(oledbConnect.ConnectionString);

    // Use the same DbConnectionStringBuilder to create
    // a SqlConnection object.
    builder.Clear();
    builder.Add("integrated security", true);
    builder.Add("Initial Catalog", "AdventureWorks");
    builder.Add("Data Source", "(local)");

    SqlConnection sqlConnect = new
        SqlConnection(builder.ConnectionString);
    Console.WriteLine(sqlConnect.ConnectionString);

    // Pass the DbConnectionStringBuilder an existing
    // connection string, and you can retrieve and
    // modify any of the elements.
    builder.ConnectionString = "server=(local);user id=*******;" +
        "password=*******;initial catalog=AdventureWorks";
    builder["Server"] = ".";
    builder.Remove("User ID");

    // Note that calling Remove on a nonexistent item doesn't
    // throw an exception.
    builder.Remove("BadItem");

    // Setting the indexer adds the value if
    // necessary.
    builder["Integrated Security"] = true;
    builder.Remove("password");
    builder["User ID"] = "Hello";
    Console.WriteLine(builder.ConnectionString);

    Console.WriteLine("Press Enter to finish.");
    Console.ReadLine();
}
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
    builder.Add("Jet OLEDB:Database Password", "*******")
    builder.Add("Jet OLEDB:System Database", _
        "c:\MyData\Workgroup.mdb")

    ' Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1)

    ' Note that the DbConnectionStringBuilder class 
    ' is database agnostic, and it's possible to 
    ' build any type of connection string using 
    ' this class.
    ' Notice that the ConnectionString property may have been 
    ' formatted by the DbConnectionStringBuilder class.

    Dim oledbConnect As New _
        OleDbConnection(builder.ConnectionString)
    Console.WriteLine(oledbConnect.ConnectionString)

    ' Use the same DbConnectionStringBuilder to create 
    ' a SqlConnection object.
    builder.Clear()
    builder.Add("integrated security", True)
    builder.Add("Initial Catalog", "AdventureWorks")
    builder.Add("Data Source", "(local)")

    Dim sqlConnect As New SqlConnection(builder.ConnectionString)
    Console.WriteLine(sqlConnect.ConnectionString)

    ' Pass the DbConnectionStringBuilder an existing 
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = _
        "server=(local);user id=*******;" & _
        "password=*******;initial catalog=AdventureWorks"
    builder.Item("Server") = "."
    builder.Remove("User ID")

    ' Note that calling Remove on a nonexistent item doesn't
    ' throw an exception.
    builder.Remove("BadItem")

    ' The Item property is the default for the class, 
    ' and setting the Item property adds the value if 
    ' necessary.
    builder("Integrated Security") = True
    builder.Remove("password")
    builder.Item("User ID") = "Hello"
    Console.WriteLine(builder.ConnectionString)

    Console.WriteLine("Press Enter to finish.")
    Console.ReadLine()
End Sub

설명

클래스는 DbConnectionStringBuilder 강력한 형식의 연결 문자열 작성기(SqlConnectionStringBuilder, OleDbConnectionStringBuilder등)가 파생되는 기본 클래스를 제공합니다. 연결 문자열 작성기를 사용하면 개발자가 프로그래밍 방식으로 구문적으로 올바른 연결 문자열을 만들고 기존 연결 문자열을 구문 분석하고 다시 빌드할 수 있습니다.

DbConnectionStringBuilder 데이터베이스에 구애받지 않은 방식으로 정의되었습니다. 네임스페이 System.Data.Common 스가 추가되었기 때문에 개발자는 임의의 데이터베이스에 대해 작동할 수 있는 연결 문자열을 빌드하기 위해 프로그래밍할 수 있는 기본 클래스가 필요합니다. 따라서 클래스를 DbConnectionStringBuilder 사용하면 사용자가 임의의 키/값 쌍을 할당하고 결과 연결 문자열 강력한 형식의 공급자에게 전달할 수 있습니다. .NET Framework 일부로 포함된 모든 데이터 공급자는 , , OracleConnectionStringBuilderOdbcConnectionStringBuilderOleDbConnectionStringBuilder에서 DbConnectionStringBuilderSqlConnectionStringBuilder상속되는 강력한 형식의 클래스를 제공합니다.

개발자는 임의의 공급자에 대한 연결 문자열을 빌드, 할당 및 편집할 수 있습니다. 특정 키/값 쌍을 지원하는 공급자의 경우 연결 문자열 작성기에서 알려진 쌍에 해당하는 강력한 형식의 속성을 제공합니다. 알 수 없는 값을 지원하는 기능이 필요한 공급자를 지원하기 위해 개발자는 임의의 키/값 쌍을 제공할 수도 있습니다.

DbConnectionStringBuilder 클래스가 ICustomTypeDescriptor 인터페이스를 구현합니다. 즉, 클래스는 디자인 타임에 Visual Studio 디자이너와 함께 작동합니다. 개발자가 디자이너를 사용하여 Visual Studio 내에서 강력하게 형식화된 데이터 세트 및 강력한 형식의 연결을 만들 때 강력한 형식의 연결 문자열 작성기 클래스는 해당 형식과 관련된 속성을 표시하고 알려진 키의 공통 값을 매핑할 수 있는 변환기도 갖습니다.

연결 문자열을 만드는 애플리케이션의 일부로 사용할 수 있습니다 하는 개발자는 DbConnectionStringBuilder 클래스 또는 빌드 및 연결 문자열을 수정 하려면 강력한 형식의 파생 중 하나입니다. DbConnectionStringBuilder 클래스도 쉽게 애플리케이션 구성 파일에 저장 된 연결 문자열을 관리 합니다.

개발자는 강력한 형식의 연결 문자열 작성기 클래스를 사용하여 연결 문자열을 만들거나 클래스를 DbConnectionStringBuilder 사용할 수 있습니다. 는 DbConnectionStringBuilder 유효한 키/값 쌍에 대한 검사를 수행하지 않습니다. 이 클래스를 사용할 경우 올바르지 않은 연결 문자열을 만들 가능성이 있습니다. 는 SqlConnectionStringBuilder SQL Server 지원하는 키/값 쌍만 지원합니다. 잘못된 쌍을 추가하려고 하면 예외가 throw됩니다.

Add 메서드와 Item[] 속성 핸들은 모두 악의적인 항목을 삽입하려고 시도합니다. 예를 들어 다음 코드는 중첩된 키/값 쌍을 올바르게 이스케이프합니다.

Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";

결과는 안전한 방식으로 잘못된 값을 처리하는 다음 연결 문자열입니다.

data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"

생성자

DbConnectionStringBuilder()

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

DbConnectionStringBuilder(Boolean)

필요에 따라 값을 인용할 때 ODBC 규칙을 사용하여 DbConnectionStringBuilder 클래스의 새 인스턴스를 초기화합니다.

속성

BrowsableConnectionString

ConnectionString 속성이 Visual Studio 디자이너에서 표시되는지 여부를 나타내는 값을 가져오거나 설정합니다.

ConnectionString

DbConnectionStringBuilder와 연결된 연결 문자열을 가져오거나 설정합니다.

Count

ConnectionString 속성 내에 포함된 키의 현재 수를 가져옵니다.

IsFixedSize

DbConnectionStringBuilder의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.

IsReadOnly

DbConnectionStringBuilder이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

Item[String]

지정된 키에 연결된 값을 가져오거나 설정합니다.

Keys

ICollection의 키를 포함하는 DbConnectionStringBuilder을 가져옵니다.

Values

ICollection의 값을 포함하는 DbConnectionStringBuilder을 가져옵니다.

메서드

Add(String, Object)

지정한 키와 값을 가지는 엔트리를 DbConnectionStringBuilder에 추가합니다.

AppendKeyValuePair(StringBuilder, String, String)

기존 StringBuilder 개체에 키 및 값을 효율적이고 안전한 방법으로 추가할 수 있도록 합니다.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

기존 StringBuilder 개체에 키 및 값을 효율적이고 안전한 방법으로 추가할 수 있도록 합니다.

Clear()

DbConnectionStringBuilder 인스턴스의 콘텐츠를 지웁니다.

ClearPropertyDescriptors()

연결된 DbConnectionStringBuilder에서 PropertyDescriptor 개체의 컬렉션을 지웁니다.

ContainsKey(String)

DbConnectionStringBuilder에 특정 키가 들어 있는지 여부를 확인합니다.

Equals(Object)

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

(다음에서 상속됨 Object)
EquivalentTo(DbConnectionStringBuilder)

DbConnectionStringBuilder 개체의 연결 정보를 제공된 개체의 연결 정보와 비교합니다.

GetHashCode()

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

(다음에서 상속됨 Object)
GetProperties(Hashtable)

제공된 Hashtable 을 이 DbConnectionStringBuilder의 모든 속성에 대한 정보로 채웁니다.

GetType()

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

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

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

(다음에서 상속됨 Object)
Remove(String)

지정된 키를 가진 항목을 DbConnectionStringBuilder 인스턴스에서 제거합니다.

ShouldSerialize(String)

DbConnectionStringBuilder 인스턴스에 지정된 키가 있는지 여부를 나타냅니다.

ToString()

DbConnectionStringBuilder와 연결된 연결 문자열을 반환합니다.

TryGetValue(String, Object)

DbConnectionStringBuilder에서 제공된 키에 해당하는 값을 검색합니다.

명시적 인터페이스 구현

ICollection.CopyTo(Array, Int32)

특정 ICollection 인덱스부터 시작하여 Array의 요소를 Array에 복사합니다.

ICollection.IsSynchronized

ICollection에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다.

ICollection.SyncRoot

ICollection에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.

ICustomTypeDescriptor.GetAttributes()

해당 구성 요소 인스턴스에 대한 사용자 지정 특성의 컬렉션을 반환합니다.

ICustomTypeDescriptor.GetClassName()

해당 구성 요소 인스턴스의 클래스 이름을 반환합니다.

ICustomTypeDescriptor.GetComponentName()

해당 구성 요소 인스턴스의 이름을 반환합니다.

ICustomTypeDescriptor.GetConverter()

해당 구성 요소 인스턴스에 대한 형식 변환기를 반환합니다.

ICustomTypeDescriptor.GetDefaultEvent()

해당 구성 요소 인스턴스의 기본 이벤트를 반환합니다.

ICustomTypeDescriptor.GetDefaultProperty()

해당 구성 요소 인스턴스의 기본 속성을 반환합니다.

ICustomTypeDescriptor.GetEditor(Type)

해당 구성 요소 인스턴스에 대한 지정된 형식의 편집기를 반환합니다.

ICustomTypeDescriptor.GetEvents()

해당 구성 요소 인스턴스의 이벤트를 반환합니다.

ICustomTypeDescriptor.GetEvents(Attribute[])

지정된 특성 배열을 필터로 사용하여 해당 구성 요소 인스턴스의 이벤트를 반환합니다.

ICustomTypeDescriptor.GetProperties()

해당 구성 요소 인스턴스의 속성을 반환합니다.

ICustomTypeDescriptor.GetProperties(Attribute[])

특성 배열을 필터로 사용하여 해당 구성 요소 인스턴스의 속성을 반환합니다.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

지정된 속성 설명자가 설명하는 속성이 포함된 개체를 반환합니다.

IDictionary.Add(Object, Object)

제공된 키와 값을 가진 요소를 IDictionary 개체에 추가합니다.

IDictionary.Contains(Object)

IDictionary 개체에 지정한 키를 가진 요소가 포함되어 있는지 여부를 결정합니다.

IDictionary.GetEnumerator()

IDictionaryEnumerator 개체의 IDictionary 개체를 반환합니다.

IDictionary.IsFixedSize

IDictionary 개체의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.

IDictionary.IsReadOnly

IDictionary가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

IDictionary.Item[Object]

지정한 키를 가진 요소를 가져오거나 설정합니다.

IDictionary.Remove(Object)

IDictionary 개체에서 지정한 키를 가지는 요소를 제거합니다.

IEnumerable.GetEnumerator()

컬렉션을 반복하는 열거자를 반환합니다.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.

적용 대상

추가 정보