none
Limpar métodos gets após uma consulta RRS feed

  • 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();
            }

    quarta-feira, 11 de novembro de 2015 16:31

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

    • Sugerido como Resposta SimorC quinta-feira, 12 de novembro de 2015 01:12
    • Marcado como Resposta Marcos SJ quinta-feira, 12 de novembro de 2015 12:44
    quinta-feira, 12 de novembro de 2015 01:11
  • 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
    quarta-feira, 11 de novembro de 2015 20:20

Todas as Respostas

  • Boa tarde.

    Poderias postar a parte do código onde tu chamas este método?


    Att., Rafael Simor

    quarta-feira, 11 de novembro de 2015 20:06
  • 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
    quarta-feira, 11 de novembro de 2015 20:20
  • 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

    • Sugerido como Resposta SimorC quinta-feira, 12 de novembro de 2015 01:12
    • Marcado como Resposta Marcos SJ quinta-feira, 12 de novembro de 2015 12:44
    quinta-feira, 12 de novembro de 2015 01:11