Usuário com melhor resposta
Limpar métodos gets após uma consulta

Pergunta
-
Galera, boa tarde!
Eu precisava fazer algum procedimento para limpar os gets a cada consulta em um form, pois toda vez que faço um SELECT em um banco e ele não acha o código ele mostra um registro de uma consulta anterior exemplo:
Consulta 01
Código 01 (Existe e retorna os dados)
Nome = Flávio
Sobrenome = Silva
Consulta 02
Código 111 (Não existe no banco)
Ele retorna de novo
Nome = Flávio
Sobrenome = Silva
Segue o código:
public static void ConsultarRegistro(int Codigo) { Conexao conexao = new Conexao(); conexao.Connect(); SqlCeCommand usercmd = new SqlCeCommand("SELECT * FROM tblCadastro WHERE idCliente = " + Codigo + "", conexao.conn); SqlCeDataReader dr = usercmd.ExecuteReader(); if (dr.Read()) { Clientes.user_info(Convert.ToInt32(dr["idCliente"]), dr["Nome"].ToString(), dr["Endereco"].ToString(), dr["Bairro"].ToString(), dr["Cidade"].ToString(), dr["Estado"].ToString(), dr["Referencia"].ToString(), dr["Telefone"].ToString(), dr["Celular"].ToString(), dr["Cep"].ToString(), dr["CPF"].ToString(), dr["RG"].ToString()); } conexao.Unconnect(); }
Respostas
-
Boa noite!
Pessoal muito obrigado pela ajuda, foi de grande valia mesmo.
Meu erro foi que os métodos e os atributos da classe estavam todos como STATIC, desta forma eu não estava criando o objeto e chamados os métodos, assim a classe quando não encontrava registro devolvia o ultimo registro consultado.
Valeu mesmo
-
metodo nao se limpa, limpa a variável que está associado ao getter, pra isso implemente a interface IDisposable e sete os objetos gerenciaveis dentro dele, no local em que voce instanciou o objeto, voce da um obj.Dispose(); Essa é a melhor forma de liberar valores, inclusive limpar objetos nao utilizados.
leia mais sobre aqui ...
Na sua classe:
class Class1:IDisposable { string _nome; public string Nome { get { return _nome; } set { _nome = value; } } public void Dispose() { this._nome = null; } }
um form exemplo:
Class1 _clsTeste = new Class1(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { _clsTeste.Nome = "Eduardo"; MessageBox.Show("Valor: " + _clsTeste.Nome); } private void button2_Click(object sender, EventArgs e) { _clsTeste.Dispose(); MessageBox.Show("Valor: " + _clsTeste.Nome); }
Eduardo Bicudo Junior
- Editado Eduardo xUni quarta-feira, 11 de novembro de 2015 20:26
- Marcado como Resposta Marcos SJ quinta-feira, 12 de novembro de 2015 12:44
Todas as Respostas
-
-
metodo nao se limpa, limpa a variável que está associado ao getter, pra isso implemente a interface IDisposable e sete os objetos gerenciaveis dentro dele, no local em que voce instanciou o objeto, voce da um obj.Dispose(); Essa é a melhor forma de liberar valores, inclusive limpar objetos nao utilizados.
leia mais sobre aqui ...
Na sua classe:
class Class1:IDisposable { string _nome; public string Nome { get { return _nome; } set { _nome = value; } } public void Dispose() { this._nome = null; } }
um form exemplo:
Class1 _clsTeste = new Class1(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { _clsTeste.Nome = "Eduardo"; MessageBox.Show("Valor: " + _clsTeste.Nome); } private void button2_Click(object sender, EventArgs e) { _clsTeste.Dispose(); MessageBox.Show("Valor: " + _clsTeste.Nome); }
Eduardo Bicudo Junior
- Editado Eduardo xUni quarta-feira, 11 de novembro de 2015 20:26
- Marcado como Resposta Marcos SJ quinta-feira, 12 de novembro de 2015 12:44
-
Boa noite!
Pessoal muito obrigado pela ajuda, foi de grande valia mesmo.
Meu erro foi que os métodos e os atributos da classe estavam todos como STATIC, desta forma eu não estava criando o objeto e chamados os métodos, assim a classe quando não encontrava registro devolvia o ultimo registro consultado.
Valeu mesmo