Usuário com melhor resposta
Utilizar ConnectionString da camada DAL na Camada UI

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!
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".
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 7 de novembro de 2016 14:55
- Precisa listar quais strings de conexão estão configuradas
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".
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 7 de novembro de 2016 14:55
- Precisa listar quais strings de conexão estão configuradas
-
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 -
-
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 ?
-
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".
-
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.