none
Criar .INI com caminhdo do servidor RRS feed

  • Pergunta

  • Olá galera, terminei um aplicativo windows forms que cadastra alguns dados em um banco postgres. Esta funcionando certinho, porém pode ser que o caminho do banco mude, e eu não queria alterar no código. Existe alguma forma de pegar este caminho de um .INI?? Segue meu código:

     public class DAL
        {
            static string serverName = "";  //Queria pegar este dado do .INI
            static string port = "5432";             //porta default
            static string userName = "postgres";     //nome do administrador
            static string password = "master";     //senha do administrador
            static string databaseName = "Cadastro"; //nome do banco de dados
            NpgsqlConnection pgsqlConnection = null;
            string connString = null;

            public DAL()
            {
                connString = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4}",
                                              serverName, port, userName, password, databaseName);
            }


    sábado, 18 de junho de 2016 17:39

Respostas

  • Boa noite Rafael,

    Você pode fazer um form que altera esses dados direto no seu app.config aonde fica a ConectionString, cria um form com esses campos e joga isso nele:

     private void LerDadosBanco()
            {
                
                string conexao = System.Configuration.ConfigurationManager.ConnectionStrings["StringConexao"].ToString();
                NpgsqlConnectionStringBuilder builder = new NpgsqlConnectionStringBuilder(conexao);
    
                TxtHost.Text = builder.Host;
                TxtNomeBanco.Text = builder.Database;
                TxtUsuario.Text = builder.Username;
                TxtSenha.Text = builder.Password;
                TxtPorta.Text = builder.Port.ToString();
            }

      private void TestarConexao()
            {
                string novaconexao = ("server="
                 + (TxtHost.Text + (";Port="
                 + (TxtPorta.Text + (";uid="
                 + (TxtUsuario.Text + (";pwd="
                 + (TxtSenha.Text + (";database="
                 + (TxtNomeBanco.Text + ""))))))))));
    
                if (conexao.TestarConexao(novaconexao))
                {
                    MessageBox.Show("Conexão testada com sucesso!", "Mensagem do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    BotaoSalvar.Enabled = true;
                }
                else
                {
                    MessageBox.Show("Conexão incorreta, verifique os dados e tente novamente!", "Mensagem do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    BotaoSalvar.Enabled = false;
                }
      private void GravarDadosBanco()
            {
                try
                {
                    string conexao;
                    conexao = ("server="
                 + (TxtHost.Text + (";Port="
                 + (TxtPorta.Text + (";uid="
                 + (TxtUsuario.Text + (";pwd="
                 + (TxtSenha.Text + (";database="
                 + (TxtNomeBanco.Text + ""))))))))));
    
                    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
                    config.ConnectionStrings.ConnectionStrings["StringConexao"].ConnectionString = conexao;
                    config.Save(ConfigurationSaveMode.Modified);
                   
                    // ler novamente a seção do HD "appSettings"
                    ConfigurationManager.RefreshSection("connectionStrings");
    
                    //ESSA LINHA ABAIXO ELA RESETA O APP.CONFIG SEM PRECISAR SAIR DO PROGRAMA....
                    Retaguarda.Properties.Settings.Default.Reset();
    
                    MessageBox.Show("Conexão salva com sucesso, o sistema será reiniciado!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Application.Restart();
                }
                catch (Exception error)
                {
                    MessageBox.Show(error.Message);
                }
    
            }


    Espero que isso lhe ajude, assim você abre ele no terminal, coloca os dados do servidor que ele vai gravar no app.config


    • Editado Guilherme Walter segunda-feira, 20 de junho de 2016 01:38 alteração codigo
    • Marcado como Resposta Thales F Quintas quarta-feira, 22 de junho de 2016 16:19
    segunda-feira, 20 de junho de 2016 01:37