Problema com Dialog Primefaces

Pessoal, to fazendo uma aplicação usando o prime onde clico em um datatable e ele exibe um dialog com os dados do registro que clickei, ate ai tudo bem, o problema é que o dialog só exibe os dados corretos do registro que clico quando eu atualizo a pagina varias vezes no browser(firefox), as vezes clico no registro 45 e ele me retorna em branco,ai clico no registro 10 e ele me retorna 45 ai quando atualizo de novo e clico em 10 finalmente ele me retorna o registro de n° 10.Alguem tem ideia de como resolver isso?Abaixo o código:

Dialog


        <p:dialog widgetVar="alterar" header="Dados do Cliente" width="400" height="300">
        <h:form id="formAlterar">
            <h:panelGrid>
                <h:outputText value="Código"/>
                <h:inputText disabled="true" value="#{clientesDialogBean.cliente.cod_cliente}"/>
                <h:outputText value="Nome" />
                <h:inputText value="#{clientesDialogBean.cliente.nome}" />
                <h:outputText value="Telefone" />
                <h:inputText value="#{clientesDialogBean.cliente.telefone}"/>
            </h:panelGrid>
            <p:commandButton value="Salvar" action="#{clientesDialogBean.alterar}" update="aviso,formAlterar,formCategorias" />
            <p:commandButton value="Remover" update="formRemover" oncomplete="remover.show()"/>
            <p:commandButton value="Cancelar" immediate="true" onclick="alterar.hide()" />
        </h:form>   
    </p:dialog>

Bean


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import model.Cliente;
import persistence.ClienteDAO;

/**
 *
 * @author luciano
 */
@ManagedBean
@SessionScoped
public class ClientesDialogBean {
   
    private Cliente cliente=new Cliente();
    private List<Cliente> lista_clientes;
    
    public void Novo(){
        cliente=new Cliente();
    }
    
    public void Selecionar(int id){
        ClienteDAO clidao=new ClienteDAO();
        cliente=clidao.Selecionar(id);
    }
    
    public Cliente getCliente(){
        return cliente;
    }
    
    public void setCliente(Cliente cliente){
        this.cliente=cliente;
    }
    
    public List<Cliente> getClientes() throws Exception{
        ClienteDAO clidao=new ClienteDAO();
        lista_clientes=clidao.listaClientes();
        return lista_clientes;
    }
    
    public void Alterar(){
        ClienteDAO cli_dao=new ClienteDAO();
        String retorno=cli_dao.Editar(cliente);
    }
    
}

Dao


 public Cliente Selecionar(Integer id) Throws Exception{
        Cliente c=new Cliente();
        DAO dao_con=new DAO();       
        Statement St=(Statement)dao_con.getCon().createStatement();
        ResultSet Rs=St.executeQuery("select * from tbl_cliente where cod_cliente = '"+id+"'");
        Rs.next();
        c.setCod_cliente(Rs.getInt("cod_cliente"));
        c.setNome(Rs.getString("nome"));
        c.setTelefone(Rs.getString("telefone"));
        c.setEmail(Rs.getString("email"));
        c.setSite(Rs.getString("site"));      
        
        return c;
    }

Quando vc chama o dialog, está mandando atualizar o form “formAlterar”???
Caso não, este é o problema.

Olá amigo,

Já resolveu o problema?

Caso não, posta aí como você chama o Dialog…

Creio que o erro é o que a andii disse.

[]