Usuário com melhor resposta
valor de variável - não perder

Pergunta
-
Olá pessoal.
Estou precisando do seguinte.
Preciso setar um valor em uma variável no meu sistema,uma constante.
E quando eu sair do sistema esse valor não perca.
Como se eu tivesse mundano no codigo mesmo.
string DataExpirar5dias = "15/11/2012";
Da pra eu gravar no banco, e atualizar no banco. mas tem como eu fazer isso no código mesmo? obrigado.
Respostas
-
Depois que salvar os valores, tente usar o método Refresh(), certamente quando a aplicação é carregada os valores deve estar persistindo em memoria:
//Sua rotina para atribuir valor nos "Settings" Properties.Settings.Default.Save(); Properties.Settings.Default.Reload();
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Pedrohgb7 segunda-feira, 29 de outubro de 2012 12:00
- Editado Vitor Mendes segunda-feira, 29 de outubro de 2012 12:01
Todas as Respostas
-
-
Não deu para entender muito bem, mas acho que vc pode usar o ConfigurationManager.
<appSettings> <add key="DataExpirar5dias" value="15/11/2012"/> </appSettings>
Assim para acessar essa variável basta chamar:
ConfigurationManager.AppSettings["DataExpirar5dias"]
Assim vc evita o hard code
-
private void bt_Ok_Click(object sender, EventArgs e) { DateTime DataAlerta = Convert.ToDateTime(ConfigurationManager.AppSettings["DataAlertaExpirar"]); Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["DataAlertaExpirar"].Value = "25/12/2012"; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } }
Emerson, estou fazendo assim.
Mas não entendo o porque que a variavel dataalerta não pega nenhum valor.
E tbm não altera o valor da key dataalertaexpirar.
Não da erro, mas tbm não atualiza nd.
Obrigado.
<appSettings> <add key="DataAlertaExpirar" value="15/11/2012"/> </appSettings>
- Editado Pedrohgb7 sexta-feira, 26 de outubro de 2012 12:12 Ajuste
-
Pedro,
Você pode trabalhar com o conceito de Settings na sua aplicação. A ideia é a mesma, persisti valores em um XML e salva-los quando fechar a aplicação ou recupera-los quando a aplicação abrir:
http://www.codeproject.com/Articles/15013/Windows-Forms-User-Settings-in-C
http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspxVitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
ok vitor, obrigado deu certo.
Mas tem um probleminha.
Properties.Settings.Default.DataAlertaExpirar = Convert.ToDateTime(dt_Alerta.Value.ToShortDateString()); Properties.Settings.Default.Save(); Aqui eu seto,uma nova data. altera a data e salva. so que quando eu clico pra abrir o sittings, vem a data inicial, que eu setei. DataAlerta = Convert.ToDateTime(Properties.Settings.Default.DataAlertaExpirar); lb_DataAlertaAtual.Text = DataAlerta.ToShortDateString(); Nesse codigo, eu pego a data que esta salva no sittings e mostro em um label. Quando eu rodo a aplicação sem depurar, mostra o valor inicial, que esta setado no sittings. Quando eu rodo depurando, mostra no label o ultimo valor de data que coloquei nesta variavel pelo codigo acima. O que pode estar acontecendo? Obrigado.
-
E aí pessoal, alguém pode me ajudar???
Obrigado.
Não entendo. msm colocando no click do botão. só depurando vem o valor que esta armazenado,
DataAlerta = Convert.ToDateTime(Properties.Settings.Default.DataAlertaExpirar); lb_DataAlertaAtual.Text = DataAlerta.ToShortDateString();
- Editado Pedrohgb7 segunda-feira, 29 de outubro de 2012 11:40 a
-
Depois que salvar os valores, tente usar o método Refresh(), certamente quando a aplicação é carregada os valores deve estar persistindo em memoria:
//Sua rotina para atribuir valor nos "Settings" Properties.Settings.Default.Save(); Properties.Settings.Default.Reload();
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Pedrohgb7 segunda-feira, 29 de outubro de 2012 12:00
- Editado Vitor Mendes segunda-feira, 29 de outubro de 2012 12:01
-