none
Utilizar ConnectionString da camada DAL na Camada UI RRS feed

  • Pergunta

  • Boa tarde a Todos,

    Estou com o seguinte problema, tenho minha ConnectionString que acesso pela minha camada DAL desta maneira, Properties.Settings.Default.ConnectionString onde obtenho todas as informações necessárias para o acesso ao banco!

    Gostaria de acessar essas informações da minha ConnectionString na Camada UI onde o usuário pode escolher qual base vai se logar!

    Outra dificuldade que eu tenho é que eu não posso criar ConnectionString no Web.confg!

    Desde já muito obrigado!

    quinta-feira, 3 de novembro de 2016 19:44

Respostas

  • Bom dia, Marcio.

    Se está trabalhando com separação em camadas, provavelmente já sabe que conceitualmente não deveria acessar sua camada DAL direto de sua camada de visão (UI). Neste caso você poderia trabalhar com um repositório baseado em arquivo que irá armazenar as possíveis strings de conexão e que sua DAL terá conhecimento, assim teria a dinâmica:

    • Precisa listar quais strings de conexão estão configuradas
      Sua UI solicita sua BLL que repassa o pedido para a DAL, então ao receber a mensagem de volta, sua UI exibe as strings possíveis
    • Ao selecionar a string de conexão
      Sua UI solicita sua BLL que seja alterada a string de conexão e sua BLL repassa a solicitação para sua DAL armazenar seja no repositório em arquivo (um XML por exemplo)

    Deste modo sua DAL passa a consultar este XML para carregar a string de conexão atual e não o arquivo de configuração (web.config no seu caso).


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sexta-feira, 4 de novembro de 2016 11:47

Todas as Respostas

  • Bom dia, Marcio.

    Se está trabalhando com separação em camadas, provavelmente já sabe que conceitualmente não deveria acessar sua camada DAL direto de sua camada de visão (UI). Neste caso você poderia trabalhar com um repositório baseado em arquivo que irá armazenar as possíveis strings de conexão e que sua DAL terá conhecimento, assim teria a dinâmica:

    • Precisa listar quais strings de conexão estão configuradas
      Sua UI solicita sua BLL que repassa o pedido para a DAL, então ao receber a mensagem de volta, sua UI exibe as strings possíveis
    • Ao selecionar a string de conexão
      Sua UI solicita sua BLL que seja alterada a string de conexão e sua BLL repassa a solicitação para sua DAL armazenar seja no repositório em arquivo (um XML por exemplo)

    Deste modo sua DAL passa a consultar este XML para carregar a string de conexão atual e não o arquivo de configuração (web.config no seu caso).


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sexta-feira, 4 de novembro de 2016 11:47
  • Olá,

    Está usando Web Forms ou MVC?

    Não sei se entendi bem, mas já deixando claro que expor dados que estão na connectionString é um tantao quanto perigoso. Poderia explicar melhor o que deseja?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 4 de novembro de 2016 12:10
  • Boa tarde André,

    Estou utilizando Web Forms!

    sexta-feira, 4 de novembro de 2016 15:18
  • Marcio, 

    Pelo oque eu entendi o usuário vai poder escolher a base que ele vai logar certo?

    Não ajudaria vc criar duas ConnectionString e na tela o usuário informa o nome da base que ele deseja logar e com esse parâmetro informado vc faz uma lógica na camada DAL pra fazer o acesso ConnectionString A ou B ?

    sexta-feira, 4 de novembro de 2016 15:33
  • Marcio, conseguiu construir o que precisava?

    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sábado, 5 de novembro de 2016 17:15
  • Boa tarde,

    Devido a falta de interação do autor dessa pergunta,

    essa thread está sendo fechada. Caso o problema ainda

    esteja ocorrendo, favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 7 de novembro de 2016 14:55
    Moderador