Usuário com melhor resposta
Web config

Pergunta
-
Olá pessoal, estou reabrindo este post pois achei que tinha resolvido meu problema, mas ele ainda persiste, entao vou tentar esclarecer melhor minhas dúvidas, vamos lá:
Tenho a seguinte connection string em meu web.config:
<connectionStrings>
<add name="minhaConnectionString" connectionString="Data Source=W2BZFSB203;Initial Catalog=bancoTeste;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
O que acontece é que meu cliente quer uma interface para administrar o endereço do servidor, o nome do banco e alguns emails padrão que minha aplicação utiliza. Ou seja, ele quer uma tela com os campos para ele digitar o endereço dos servers e minha aplicação deve buscar esses endereços. Porém eu não conheço uma maneira de tornar isso possível. Então pensei em criar uma classe do tipo "AppConnections" e dentro dela criar a propriedade ConnectionString, que busca em um XML os endereços do banco e tudo mais....
Resumindo, minha classe AppConnections vai em um XML, localiza a tag <ServerAddress>192.168.0.1</ServerAddress> e se conecta ao banco de dados SQL. Mas ai está o porém: Fazendo dessa maneira eu não consigo trabalhar com dataset tipados porque eles sempre irão buscar a conectionsstring lá do meu web.config.
Eu gostaria de saber se existe alguma maneira de substituir o valor "connectionString="Data Source=W2BZFSB203;Initial Catalog=bancoTeste" do web.config pelo valor informado pelo usuário em outra tela.
Obrigado pela atenção!!
Respostas
-
Ola Fabio,
Isso não é permitido porque isso que está acessando é somente leitura. Para poder alterar isso, terá que fazer da seguinte forma:
using System.Web.Configuration;
//....
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;
dbConnString.ConnectionStrings["DBOrders"].ConnectionString = "TUA NOVA CONNSTRING AQUI";
webConfig.Save();
Todas as Respostas
-
Fábio,
Tem sim, no post que perguntou sobre isso te dei um exemplo de como fazer, Tente o seguinte para as ConnectionStrings.
Veja abaixo um exemplo que ler e jogar no TextBox e depois atualiza:
Para ler:
this.TextBox1.Text = ConfigurationManager.ConnectionStrings["minhaConnectionString"].ConnectionString;
Para alterar você tem diversas formas, uma delas é o exemplo abaixo:
ConfigurationManager
.ConnectionStrings["minhaConnectionString"].ConnectionString = this.TextBox1.Text;Espero ter ajudado!
-
Fábio,
Tem sim, no post que perguntou sobre isso te dei um exemplo de como fazer, Tente o seguinte para as ConnectionStrings.
Veja abaixo um exemplo que ler e jogar no TextBox e depois atualiza:
Para ler:
this.TextBox1.Text = ConfigurationManager.ConnectionStrings["minhaConnectionString"].ConnectionString;
Para alterar você tem diversas formas, uma delas é o exemplo abaixo:
ConfigurationManager
.ConnectionStrings["minhaConnectionString"].ConnectionString = this.TextBox1.Text;Espero ter ajudado!
-
Fábio,
Tem sim, no post que perguntou sobre isso te dei um exemplo de como fazer, Tente o seguinte para as ConnectionStrings.
Veja abaixo um exemplo que ler e jogar no TextBox e depois atualiza:
Para ler:
this.TextBox1.Text = ConfigurationManager.ConnectionStrings["minhaConnectionString"].ConnectionString;
Para alterar você tem diversas formas, uma delas é o exemplo abaixo:
ConfigurationManager
.ConnectionStrings["minhaConnectionString"].ConnectionString = this.TextBox1.Text;Espero ter ajudado!
-
Estou com um probleminha aqui ainda, quando eu quero alterar minha ConectionString aparece o seguinte erro:
Line 9: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Line 10: ConfigurationManager.ConnectionStrings(1).ConnectionString = TextBox1.Text
Line 11: End Sub
Line 12: End ClassErro: The configuration is read only.
Será que eu tenho que configurar para poder alterar??
-
Ola Fabio,
Isso não é permitido porque isso que está acessando é somente leitura. Para poder alterar isso, terá que fazer da seguinte forma:
using System.Web.Configuration;
//....
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;
dbConnString.ConnectionStrings["DBOrders"].ConnectionString = "TUA NOVA CONNSTRING AQUI";
webConfig.Save();