none
Criar um tela de configuração;onde o próprio adm ou o usuário possa configurar o caminho "String" até o banco de dados SQL. RRS feed

  • Pergunta

  • como criar uma tela "Form" para o próprio administrador "Usuário" do sistema configurar o caminho até o banco de dados do servidor dele!

    sexta-feira, 13 de janeiro de 2017 14:50

Respostas

  • Oi Antoniel,

    Entendi, você quer apenas poder trocar a conexão sem recompilar o programa, certo?
    Bom, todo executavel feito no .net tem um arquivo chamado .appconfig na pasta bin. Por exemplo, se seu Executavel está com nome de Programa.exe , vai ter um chamado Programa.exe.Config.Esse arquivo de config também é chamado de AppConfig.

    Então, você precisa colocar na tag "Configuration" um outra tag, chamada "Connection Strings", com a configuração do banco de dados.
    Vou dar um exemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <startup> 
            
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
    
        <connectionStrings>
    
          <add name="ConexaoBD" connectionString="Provider=SQLOLEDB.1;User ID=usuario;Password=senha;Persist Security Info=False;Initial Catalog=Banco;Data Source=Servidor" providerName="System.Data.SqlClient" />
         
        </connectionStrings>
        
    </configuration>

    Ai na hora que você faz a conexão com o banco de dados, você precisa fazer ele puxar a conexão desse arquivo de configuração.

    var connection = 
        System.Configuration.ConfigurationManager.ConnectionStrings["ConexaoBD"].ConnectionString;

    Ao invés de deixar os valores fixos no código, vc vai usar essa váriavel connection.A ideia é recuperar o valor tem tempo de execução.
    Ai você compila e executa na sua maquina, colocando no arquivo .config os dados do seu banco de dados.

    Quando levar pro seu cliente, basta abrir o .config e colocar a conexão de banco de dados dele.Assim, você não precisa recompilar o seu sistema novamente, basta alterar do arquivo config e abrir o .exe novamente.

    Agora, você também pode fazer uma tela pra isso, criando um Form , colocando os textbox pro user fazer o input dos dados, e ao clicar no botão salvar,chamar o código que coloquei na minha primeira resposta.
    Entendeu?

    []'s

    --

    Se a resposta for relevante ou tenha resolvido seu problema, não esqueça marcar como útil/resposta!




    • Editado Rodrigo Suleiman sexta-feira, 13 de janeiro de 2017 17:37
    • Sugerido como Resposta Rodrigo Suleiman sexta-feira, 13 de janeiro de 2017 17:37
    • Marcado como Resposta Antoniel.niel sexta-feira, 13 de janeiro de 2017 22:37
    sexta-feira, 13 de janeiro de 2017 16:34

Todas as Respostas

  • Olá Antoniel,

    Levando em consideração que sua connection string está no webconfig/appconfig(na seção de ConnectionStrings), você modifica ele e dá o comando de reload nele.Segue um exemplo:

    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
    connectionStringsSection.ConnectionStrings["MinhaConnString"].ConnectionString = "Data Source=Servidor;Initial Catalog=bd;UID=user;password=senha";
    config.Save();
    ConfigurationManager.RefreshSection("connectionStrings");

    ok?

    []'s,
    --

    Se a resposta for relevante ou tenha resolvido seu problema, não esqueça marcar como útil/resposta!




    • Editado Rodrigo Suleiman sexta-feira, 13 de janeiro de 2017 15:48
    • Marcado como Resposta Antoniel.niel sexta-feira, 13 de janeiro de 2017 16:16
    • Não Marcado como Resposta Antoniel.niel sexta-feira, 13 de janeiro de 2017 16:16
    sexta-feira, 13 de janeiro de 2017 15:38
  • Rodrigo muito obrigado pela resposta, mais teria como eu criar um tela para quando o usuário fosse  abrir o programa ele teria o menu de configuração com o banco, e lá ele forneceria as informações de conexão com o banco de dados dele! 

    lembrando que a minha aplicação e Desktop. fiz esta aplicação para rodar aqui na empresa mais só que provavelmente vou ter que leva-la para outra empresa que trabalha com o banco de dados idêntico, só que eu não queria ter que fazer a configuração da conexão manual e depois salvar o programa e criar o executável novamente. queria que o próprio programa me desse essa opção de poder configurar a conexão ou editar.

    se puder me ajudar ou me orientar a onde procurar fico muito grato!!

    sexta-feira, 13 de janeiro de 2017 16:09
  • Oi Antoniel,

    Entendi, você quer apenas poder trocar a conexão sem recompilar o programa, certo?
    Bom, todo executavel feito no .net tem um arquivo chamado .appconfig na pasta bin. Por exemplo, se seu Executavel está com nome de Programa.exe , vai ter um chamado Programa.exe.Config.Esse arquivo de config também é chamado de AppConfig.

    Então, você precisa colocar na tag "Configuration" um outra tag, chamada "Connection Strings", com a configuração do banco de dados.
    Vou dar um exemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <startup> 
            
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
    
        <connectionStrings>
    
          <add name="ConexaoBD" connectionString="Provider=SQLOLEDB.1;User ID=usuario;Password=senha;Persist Security Info=False;Initial Catalog=Banco;Data Source=Servidor" providerName="System.Data.SqlClient" />
         
        </connectionStrings>
        
    </configuration>

    Ai na hora que você faz a conexão com o banco de dados, você precisa fazer ele puxar a conexão desse arquivo de configuração.

    var connection = 
        System.Configuration.ConfigurationManager.ConnectionStrings["ConexaoBD"].ConnectionString;

    Ao invés de deixar os valores fixos no código, vc vai usar essa váriavel connection.A ideia é recuperar o valor tem tempo de execução.
    Ai você compila e executa na sua maquina, colocando no arquivo .config os dados do seu banco de dados.

    Quando levar pro seu cliente, basta abrir o .config e colocar a conexão de banco de dados dele.Assim, você não precisa recompilar o seu sistema novamente, basta alterar do arquivo config e abrir o .exe novamente.

    Agora, você também pode fazer uma tela pra isso, criando um Form , colocando os textbox pro user fazer o input dos dados, e ao clicar no botão salvar,chamar o código que coloquei na minha primeira resposta.
    Entendeu?

    []'s

    --

    Se a resposta for relevante ou tenha resolvido seu problema, não esqueça marcar como útil/resposta!




    • Editado Rodrigo Suleiman sexta-feira, 13 de janeiro de 2017 17:37
    • Sugerido como Resposta Rodrigo Suleiman sexta-feira, 13 de janeiro de 2017 17:37
    • Marcado como Resposta Antoniel.niel sexta-feira, 13 de janeiro de 2017 22:37
    sexta-feira, 13 de janeiro de 2017 16:34