복붙노트

[SQL] SqlConnectionStringBuilder를 사용하여 연결 문자열에서 데이터베이스 이름을 얻는 방법

SQL

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

나는 문자열 조작을 사용하여 연결 문자열을 분할하고 UID 및 암호 서버, 데이터베이스, 싶어하지 않았다.

나는 다음과 같은 링크를 읽고 허용 대답을 읽고, 그 get 및 사용자 ID와 연결 문자열에서 암호를 알아,하지만 데이터베이스 이름에 대한 가장 좋은 방법은 발견?

연결 문자열에서 사용자 이름과 암호를 얻을 수있는 올바른 방법?

어떻게 SqlConnectionStringBuilder를 사용하여 연결 문자열에서 데이터베이스 이름을 얻을 수 있습니다. (데이터 소스는 서버 이름이 무엇입니까?)

해결법

  1. ==============================

    1.InitialCatalog 속성에 대한 MSDN 문서를 참조하십시오 :

    InitialCatalog 속성에 대한 MSDN 문서를 참조하십시오 :

  2. ==============================

    2.당신이 필요한 경우 추상에 연결 문자열 객체를 (적절한 네임 스페이스 내에서) 공급자 별의 ConnectionStringBuilder 클래스를 사용하거나 System.Data.Common.DbConnectionStringBuilder 수 있습니다. 당신은 당신이 찾고있는 정보를 지정하는 데 사용 공급자 별 키워드를 알아야 할 것입니다,하지만 SQL 서버 예를 들어, 당신은이 두 가지 중 하나 할 수있다 :

    당신이 필요한 경우 추상에 연결 문자열 객체를 (적절한 네임 스페이스 내에서) 공급자 별의 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;
    
  3. ==============================

    3.훨씬 간단한 대안은 연결 개체 자체에서 정보를 얻을 수 있습니다. 예를 들면 :

    훨씬 간단한 대안은 연결 개체 자체에서 정보를 얻을 수 있습니다. 예를 들면 :

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

    마찬가지로 당신은 연결 개체에서뿐만 아니라 서버 이름을 얻을 수 있습니다.

    DbConnection connection = new SqlConnection(connectionString);
    var server = connection.DataSource;
    
  4. ==============================

    4.

    string connectString = "Data Source=(local);" + "Integrated Security=true";
    
    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
    
    Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);
    
  5. ==============================

    5.이것은 당신에게 XACT를 제공합니다;

    이것은 당신에게 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.
    
  6. ==============================

    6.데이터베이스 이름은 SqlConnectionStringBuilder.InitialCatalog 속성의 값입니다.

    데이터베이스 이름은 SqlConnectionStringBuilder.InitialCatalog 속성의 값입니다.

  7. ==============================

    7.당신은 InitialCatalog 건물 또는 빌더 [ "데이터베이스"]으로 잘 작동 할 수 있습니다. 나는 다른 케이스를 테스트하고 그것은 여전히 ​​작동합니다.

    당신은 InitialCatalog 건물 또는 빌더 [ "데이터베이스"]으로 잘 작동 할 수 있습니다. 나는 다른 케이스를 테스트하고 그것은 여전히 ​​작동합니다.

  8. from https://stackoverflow.com/questions/10550541/how-to-get-database-name-from-connection-string-using-sqlconnectionstringbuilder by cc-by-sa and MIT license