DbConnectionStringBuilder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
강력한 형식의 연결 문자열 작성기를 위한 기본 클래스를 제공합니다.
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 클래스를 사용하여 연결 문자열을 만든 다음 DbConnectionStringBuilder 인스턴스의 ConnectionString 속성을 강력한 형식의 연결 클래스의 생성자에 전달합니다. 이 작업은 필요하지 않습니다. 이 코드는 강력한 형식의 개별 연결 문자열 작성기 인스턴스를 만들 수도 있습니다. 또한 이 예제에서는 기존 연결 문자열을 구문 분석하고 연결 문자열의 내용을 조작하는 다양한 방법을 보여 줍니다.
DbConnectionStringBuilder builder =
new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// 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 might 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);initial catalog=AdventureWorks";
builder["Server"] = ".";
// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
Dim builder As New DbConnectionStringBuilder()
builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
' 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);initial catalog=AdventureWorks"
builder.Item("Server") = "."
' The Item property is the default for the class,
' and setting the Item property adds the value if
' necessary.
builder("Integrated Security") = True
Console.WriteLine(builder.ConnectionString)
Console.WriteLine("Press Enter to finish.")
Console.ReadLine()
End Sub
설명
DbConnectionStringBuilder 클래스는 강력한 형식의 연결 문자열 작성기(SqlConnectionStringBuilder, OleDbConnectionStringBuilder등)가 파생되는 기본 클래스를 제공합니다. 연결 문자열 작성기를 사용하면 개발자가 프로그래밍 방식으로 올바른 연결 문자열을 만들고 기존 연결 문자열을 구문 분석하고 다시 작성할 수 있습니다.
DbConnectionStringBuilder 데이터베이스에 구애받지 않은 방식으로 정의되었습니다. System.Data.Common 네임스페이스가 추가되었기 때문에 개발자는 임의의 데이터베이스에 대해 작동할 수 있는 연결 문자열을 빌드하기 위해 프로그래밍할 수 있는 기본 클래스가 필요합니다. 따라서 DbConnectionStringBuilder 클래스를 사용하면 사용자가 임의의 키/값 쌍을 할당하고 결과 연결 문자열을 강력한 형식의 공급자에 전달할 수 있습니다. .NET의 일부로 포함된 모든 데이터 공급자는 SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilder및 OleDbConnectionStringBuilderDbConnectionStringBuilder상속하는 강력한 형식의 클래스를 제공합니다.
임의의 공급자에 대한 연결 문자열을 빌드, 할당 및 편집할 수 있습니다. 특정 키/값 쌍을 지원하는 공급자의 경우 연결 문자열 작성기에서 알려진 쌍에 해당하는 강력한 형식의 속성을 제공합니다. 알 수 없는 값을 지원하는 기능이 필요한 공급자의 경우 임의의 키/값 쌍을 제공할 수도 있습니다.
DbConnectionStringBuilder 클래스는 ICustomTypeDescriptor 인터페이스를 구현합니다. 즉, 클래스는 디자인 타임에 Visual Studio 디자이너와 함께 작동합니다. 개발자가 디자이너를 사용하여 Visual Studio 내에서 강력한 형식의 DataSets 및 강력한 형식의 연결을 빌드하는 경우 강력한 형식의 연결 문자열 작성기 클래스에는 해당 형식과 연결된 속성이 표시되고 알려진 키에 대한 공통 값을 매핑할 수 있는 변환기도 있습니다.
애플리케이션의 일부로 연결 문자열을 만들어야 하는 경우 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 |
DbConnectionStringBuilder키가 포함된 ICollection 가져옵니다. |
Values |
DbConnectionStringBuilder값이 포함된 ICollection 가져옵니다. |
메서드
명시적 인터페이스 구현
확장 메서드
Cast<TResult>(IEnumerable) |
IEnumerable 요소를 지정된 형식으로 캐스팅합니다. |
OfType<TResult>(IEnumerable) |
지정된 형식에 따라 IEnumerable 요소를 필터링합니다. |
AsParallel(IEnumerable) |
쿼리의 병렬 처리를 사용하도록 설정합니다. |
AsQueryable(IEnumerable) |
IEnumerable IQueryable변환합니다. |
적용 대상
추가 정보
- ADO.NET 연결 문자열
- ADO.NET 개요
.NET