none
duvida sobre publicação de sistemas RRS feed

  • Pergunta

  • ola pessoal estou começando a vida de desenvolvedor agora

    apesar de ja usar e fuçar a + de 6 anos começando do vb agr finalmente apaixonei pelo c#

    estou criando uma aplicação para gerenciar um biblioteca publica e estou utilizando visual studio community 2013

    e o sql server 2014 express entao aplicação(desktop) terá camada model mas percebi que a conection string pega o caminho da minha maquina ou seja como vou instalar a aplicação na maquina final

    esse caminho ira mudar de acordo com a maquina ou e melhor esquecer a camada de dados e fazer no Mysql> localhost

    segunda-feira, 15 de junho de 2015 03:13

Respostas

  • Olá,

    eu fiz da seguinte forma:

    Classe para ler e alterar o app.config

            public static string LerXmlConfig(string Chave)
            {
                string Resultado = ConfigurationManager.AppSettings[Chave];
                return Resultado;
            }
    
            public static void AlerarXmlConfig(string Chave, string Valor)
            {
                System.Configuration.Configuration Conf =
                    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
                Conf.AppSettings.Settings[Chave].Value = Valor;
                Conf.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }

    O meu App.config possui os seguintes campos:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
          <add key="NomeServidor" value=""/>
          <add key="NomeBD" value=""/>
      </appSettings>
    </configuration>

    Então, para formar a string de conexão basta concatenar:

                    return new SqlConnection(@"Data Source=" + ConfigTerminal.LerXmlConfig("NomeServidor") +
                    ";Initial Catalog=" + ConfigTerminal.LerXmlConfig("NomeBD") + ";Integrated Security=True");

    Espero ter ajudado!

    att,

    • Marcado como Resposta MFSoluçoes terça-feira, 16 de junho de 2015 17:52
    segunda-feira, 15 de junho de 2015 19:28

Todas as Respostas

  • Olá,

    Eu sugiro que vc mantenha a camada de dados e configure a string de conexão pelo web.config ou app.config.

    Assim é só vc alterar a string de conexão no xml de configuração que irá para a versão de produção.

    Espero que responda sua dúvida!

    Att.,

    Sergio

    http://www.imappmaker.com

    • Sugerido como Resposta SergioSchirmer quinta-feira, 18 de junho de 2015 23:33
    segunda-feira, 15 de junho de 2015 04:42
  • acho que entendi eu instalo e configuro o sql server na maquina do cliente e depois so troco na app certo tem como pegar essa string automaticamente pq este app faz parte do meu estagio e eu n sei em qtas escolas(cada escola tem um servidor local e o banco n tem como ficar hospedado na secretaria pq a net raramente funciona a net) eles vão instalar este app

    se haver um jeito de pegar automaticamente por meio de classe você pode me orientar

    • Editado MFSoluçoes segunda-feira, 15 de junho de 2015 09:18
    segunda-feira, 15 de junho de 2015 09:15
  • Bom dia,

    A orientação do Sergio é a que eu recomendo também, deixar a string de conexão no app.config/web.config e recuperá-la na sua classe de acesso ao banco. A string no arquivo fica dessa forma:

     <connectionStrings>
        
        <add name="NomeDaConexao" connectionString="Data Source=ID/NomeServidor;User ID=UsuarioConexao;Password=SenhaConexao;Initial Catalog=BaseDados;" providerName="System.Data.SqlClient"/>
       
      </connectionStrings>

    Dessa forma, você pode alterar esse caminho sem precisar publicar novamente a aplicação.

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    segunda-feira, 15 de junho de 2015 12:43
  • desculpe a ignorância eu ja criei o app.config com a conection string como ficaria na classe ?
    segunda-feira, 15 de junho de 2015 17:57
  • Olá,

    Para acessar a string de conexão via classe, utilize a seguinte linha de código:

    string stringConexao = ConfigurationManager.ConnectionStrings["NomeDaConexao"].ConnectionString;

    Espero que ajude!

    Att.,

    Sergio

    http://www.imappmaker.com

    • Sugerido como Resposta SergioSchirmer terça-feira, 16 de junho de 2015 03:11
    segunda-feira, 15 de junho de 2015 18:28
  • Olá,

    eu fiz da seguinte forma:

    Classe para ler e alterar o app.config

            public static string LerXmlConfig(string Chave)
            {
                string Resultado = ConfigurationManager.AppSettings[Chave];
                return Resultado;
            }
    
            public static void AlerarXmlConfig(string Chave, string Valor)
            {
                System.Configuration.Configuration Conf =
                    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
                Conf.AppSettings.Settings[Chave].Value = Valor;
                Conf.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }

    O meu App.config possui os seguintes campos:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
          <add key="NomeServidor" value=""/>
          <add key="NomeBD" value=""/>
      </appSettings>
    </configuration>

    Então, para formar a string de conexão basta concatenar:

                    return new SqlConnection(@"Data Source=" + ConfigTerminal.LerXmlConfig("NomeServidor") +
                    ";Initial Catalog=" + ConfigTerminal.LerXmlConfig("NomeBD") + ";Integrated Security=True");

    Espero ter ajudado!

    att,

    • Marcado como Resposta MFSoluçoes terça-feira, 16 de junho de 2015 17:52
    segunda-feira, 15 de junho de 2015 19:28
  • legal pessoal obrigado pela ajuda vou fazer o teste no 1º cliente amanha muito obrigado mesmo

    terça-feira, 16 de junho de 2015 17:52
  • Boa sorte! Se funcionou minha sugestão favor marcar como resposta.

    Abs,

    Sergio

    http://www.imappmaker.com

    quinta-feira, 18 de junho de 2015 23:33