none
Recuperar nome do banco de dados em um initial catalog em string connection RRS feed

  • Pergunta

  • Tenho um string connection no web.config.

    Gostaria obter o nome do banco de dados que esta no initial catalog.

    Fiz assim:

            private string  BuscaNomeBD()
            {
                string[] v = ConfigurationManager.ConnectionStrings["GestaoAtivoEntities"].ToString().Split(';');
    
                string nomeBD = "";
    
                for (int i = 0; i < v.Length; i++)
                {
                    if (v[i].ToString().IndexOf("initial") > -1)
                    {
                        nomeBD = v[i].ToString().Split('=')[1];
                    }
                }
                return nomeBD;
            }

    Mas achei que ficou muito ruim.

    Alguma sugestão para efetuar este procedimento de uma maneira mais robusta?

    Ou é por ai mesmo?


    Ninguém falou que seria fácil!

    terça-feira, 24 de abril de 2012 19:00

Respostas

  • Daniel, valeu a dica!

    Nada como perguntar para quem sabe.

    Fiquei até com vergonha da solução que postei.

    Só tive que fazer uns ajuste pois estava retornando o erro: "Não há suporte para a palavra-chave: 'metadata'"

    using System.Data.SqlClient; using System.Data.EntityClient; public static string BuscaNomeBD(string stringDeConexao) { EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder(GetConnectionString()); SqlConnectionStringBuilder sbuilder = new SqlConnectionStringBuilder(builder.ProviderConnectionString); return sbuilder.InitialCatalog.ToString();

    }

    Só mais uma dúvida esta duas novas referências     using System.Data.SqlClient  e using System.Data.EntityClient isto têm algum peso na aplicação?

    Value a ajuda.



    Ninguém falou que seria fácil!

    • Marcado como Resposta jothaz quarta-feira, 25 de abril de 2012 13:58
    quarta-feira, 25 de abril de 2012 13:58
  • Boa tarde,

    segue minha sugestão:

    private string BuscaNomeBD()
    {
        return new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["GestaoAtivoEntities"].ToString()).InitialCatalog;
    }

    não se esqueça do tratamento de erros.

    Abraços,


    Daniel Cheida de Oliveira

    • Sugerido como Resposta Daniel Cheida terça-feira, 24 de abril de 2012 20:28
    • Marcado como Resposta jothaz quarta-feira, 25 de abril de 2012 13:53
    terça-feira, 24 de abril de 2012 20:28

Todas as Respostas

  • Boa tarde,

    segue minha sugestão:

    private string BuscaNomeBD()
    {
        return new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["GestaoAtivoEntities"].ToString()).InitialCatalog;
    }

    não se esqueça do tratamento de erros.

    Abraços,


    Daniel Cheida de Oliveira

    • Sugerido como Resposta Daniel Cheida terça-feira, 24 de abril de 2012 20:28
    • Marcado como Resposta jothaz quarta-feira, 25 de abril de 2012 13:53
    terça-feira, 24 de abril de 2012 20:28
  • Daniel, valeu a dica!

    Nada como perguntar para quem sabe.

    Fiquei até com vergonha da solução que postei.

    Só tive que fazer uns ajuste pois estava retornando o erro: "Não há suporte para a palavra-chave: 'metadata'"

    using System.Data.SqlClient; using System.Data.EntityClient; public static string BuscaNomeBD(string stringDeConexao) { EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder(GetConnectionString()); SqlConnectionStringBuilder sbuilder = new SqlConnectionStringBuilder(builder.ProviderConnectionString); return sbuilder.InitialCatalog.ToString();

    }

    Só mais uma dúvida esta duas novas referências     using System.Data.SqlClient  e using System.Data.EntityClient isto têm algum peso na aplicação?

    Value a ajuda.



    Ninguém falou que seria fácil!

    • Marcado como Resposta jothaz quarta-feira, 25 de abril de 2012 13:58
    quarta-feira, 25 de abril de 2012 13:58