programing

SqlConnectionStringBuilder를 사용하여 연결 문자열에서 데이터베이스 이름을 가져오는 방법

javajsp 2023. 5. 24. 21:41

SqlConnectionStringBuilder를 사용하여 연결 문자열에서 데이터베이스 이름을 가져오는 방법

서버, 데이터베이스, 사용자 이름 및 암호를 가져오기 위해 문자열 조작 기능을 사용하여 연결 문자열을 분할하고 싶지 않습니다.

다음 링크를 읽고 승인된 답변을 읽었습니다. 연결 문자열에서 사용자 이름과 암호를 꺼내는 가장 좋은 방법을 찾았습니다. 하지만 데이터베이스 이름은 어떻습니까?

연결 문자열에서 사용자 이름과 암호를 가져오는 올바른 방법?

SqlConnectionStringBuilder를 사용하여 연결 문자열에서 데이터베이스 이름을 가져오는 방법.(데이터 소스가 서버 이름입니까?)

적절한 네임스페이스 내에서 공급자별 ConnectionStringBuilder 클래스를 사용할 수 있습니다.System.Data.Common.DbConnectionStringBuilder필요한 경우 연결 문자열 개체를 추상화합니다.원하는 정보를 지정하는 데 사용되는 공급자별 키워드를 알아야 하지만 SQL 서버 예제에서는 다음 두 가지 작업 중 하나를 수행할 수 있습니다.

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);

string server = builder.DataSource;
string database = builder.InitialCatalog;

또는

System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();

builder.ConnectionString = connectionString;

string server = builder["Data Source"] as string;
string database = builder["Initial Catalog"] as string;

초기 카탈로그 속성은 MSDN 설명서를 참조하십시오.

연결과 연결된 데이터베이스의 이름을 가져오거나 설정합니다...

이 속성은 연결 문자열 내의 "초기 카탈로그" 및 "데이터베이스" 키에 해당합니다...

훨씬 간단한 대안은 연결 개체 자체에서 정보를 가져오는 것입니다.예:

IDbConnection connection = new SqlConnection(connectionString);
var dbName = connection.Database;

마찬가지로 연결 개체에서도 서버 이름을 가져올 수 있습니다.

DbConnection connection = new SqlConnection(connectionString);
var server = connection.DataSource;
string connectString = "Data Source=(local);" + "Integrated Security=true";

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);

Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);

이것은 당신에게 Xact를 줍니다.

System.Data.SqlClient.SqlConnectionStringBuilder connBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();

connBuilder.ConnectionString = connectionString;

string server = connBuilder.DataSource;           //-> this gives you the Server name.
string database = connBuilder.InitialCatalog;     //-> this gives you the Db name.

데이터베이스 이름은 SqlConnectionStringBuilder 값입니다.초기 카탈로그 속성입니다.

초기 카탈로그 속성 또는builder["Database"]작동하기도 합니다.다른 케이스로 테스트를 해봤는데 여전히 작동합니다.

언급URL : https://stackoverflow.com/questions/10550541/how-to-get-database-name-from-connection-string-using-sqlconnectionstringbuilder