String de Conexão
Olá pessoal, estou fazendo um site e tenho muitas conexoes com o banco via codigo, para eu fazer as conexoes via codgio tenho que especificar o caminho completo do banco. Será que teria um jeito de eu especificar apenas o caminho dentro do meu projeto? Estou tendo serios problemas com essas conexoes.
Abraços.
Respostas
- Uma conexão vai ser comum, é através dela que você vai obter o usuário de uma tabela e verificar se a senha confere, nesta mesma tabela deverá conter o id do usuário (um código de identificação do usuário).
Crie uma tabela para armazenar dois campos, o código do usuário e a string de conexão, ou armazene na mesma tabela do usuário, a partir do código do usuário faça um select para obter a string de conexão, ai você pode até guardá-la na Session, para não precisar ficar recuperando-á a todo momento.
Espero ter ajudado desta vez,
Atenciosamente Olá pessoal...eu já resolvi o problema.
Criei uma session que recebe o nome do meu banco, ai toda vez que inicio uma pagina ele tem uma conexao eu passo o nome do banco com parametro para a string de conexao.
Vlw pessoal.
Obrigado.
Abraços.
Todas as Respostas
- Boa tarde,
Tu poderia fazer assim:
Code Snippet<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\nomeBanco.mdf; Integrated Security=True; MultipleActiveResultSets=True; User Instance=True" providerName="System.Data.SqlClient"/>
[]'s - Cláudio vc poderia mi explica o codigo.
- Sim, o atributo (name="ConnectionString") é o nome que tu usará via código para utilizar esta conexão.
Exemplo via código tu quer acessar esta conexão no web.config, tu faria assim:
Code Snippetstring strConnDb = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlConn = new SqlConnection(strConnDb);
Como sou novo, minhas informações podem estar erradas, sobre a explicação.
Ja esta parte:
Data Source=.\SQLEXPRESS; (IP ou Nome do Servidor SQL) AttachDbFilename=|DataDirectory|\nomeBanco.mdf; (|DataDirectory| indica o diretório App_Data que é onde o .mdf é armazenado em seu projeto)
Integrated Security=True; (tu tá ativado alguma lance de segurança em sua conexão, não sei bem o que)
MultipleActiveResultSets=True; (permite utilizar varias conexões ao mesmo tempo)
User Instance=True; (está aqui já ñ sei o que é :-D)
Espero ter ajudado.
[]'s Deixa te explicar como minha aplicação funciona. Tenho um site q é acesado por varios clientes, cada cliente tem seu banco de dados acessando assim a aplicação, esse acesso acorre apos o cliente fazer o login, ouseja, ele escolhe o banco que vai acessar.
Quando eu estou fazendo a aplicaçao eu nao posso definir que sera este ou aquele banco de dados que será usado pq depende do usuario.
Vc entendeu?
Tem como me ajudar?
Abraços.
- Utilize um banco principal de forma compartilhada para o login dos usuário, neste banco você armazena as informações de login a a string de conexão, a partir dai, quando o usuário se logar vc pega a string de conexão referente a ele.
Atenciosamente, - Boa tarde,
Entendi, então tu tem uma base só para os logins? Mais as outras bases para redirecionar cada tipo de cliente, certo?
E seria viável tu seguir a sugestão do Lúiz?
Não tem como tu unir todas as bases em uma única?
[]'s Fernando, o que eu esotu querendo fazer .é exatamente isso mas não sei como implantar este método em meu código. Vc sabe como posso fazer?
Abraços.
Boa tarde joão, eu tive um problema parecido, onde utilizo Oracle com DBlink e cinco servidores diferentes, conforme o login do usuário eu monto uma string de conexão:
Solução: Montei um XML genérico com as possiveis string's de conexão e obrigo o usuário a escolher qual base ele irá logar, com isso consigo validar se o usuário tem acesso ou não aquele base.
Caso precise de ajuda para montar o XML e como ler o mesmo posso lhe ajudar
- Uma conexão vai ser comum, é através dela que você vai obter o usuário de uma tabela e verificar se a senha confere, nesta mesma tabela deverá conter o id do usuário (um código de identificação do usuário).
Crie uma tabela para armazenar dois campos, o código do usuário e a string de conexão, ou armazene na mesma tabela do usuário, a partir do código do usuário faça um select para obter a string de conexão, ai você pode até guardá-la na Session, para não precisar ficar recuperando-á a todo momento.
Espero ter ajudado desta vez,
Atenciosamente Tudo isto que vcs me disseram é exatamente o que eu quero, principalmente o que vc disse agora Luis, mas o problema é que eu não sei como implementar isto no meu código, vc sabe fazer esta parte?
Abraços.
- Alguem pode me ajudar?
Por favor galera to precisando muito dessa solução.
Mi ajudem ai.
Abraços.
Oi !
Crie um novo website
vá no menu website ->asp.net configuration
Vá em security
Siga o wizard
Voltando ao design no VS, teste os webControls da aba login na toolbox.
Leia este artigo : http://www.bufaloinfo.com.br/artigos/coluna32.asp
Crie uma classe que, com base na identidade do usuário, recupere a string de conexão de sua base de dados.
Passe a utilizar esta classe em suas páginas, para especificar a string de conexão.
[]'s
Cara primeiro no seu web.confg vc cria a sua string de conexão como abaixo
<add name="SuaString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\nomeBanco.mdf; Integrated Security=True; MultipleActiveResultSets=True; User Instance=True" providerName="System.Data.SqlClient"/>
se vc tiver usando C# toda vez que precisar acessar seu bando e so usar o modelo abaixo.
SqlConnection
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SuaString"].ConnectionString); conn.Open();e para usar seus comando
SqlCommand comando = new SqlCommand("seu comando", conn);comando.ExecuteNonQuery();
espero ter ajudado..
Olá pessoal...eu já resolvi o problema.
Criei uma session que recebe o nome do meu banco, ai toda vez que inicio uma pagina ele tem uma conexao eu passo o nome do banco com parametro para a string de conexao.
Vlw pessoal.
Obrigado.
Abraços.
