Problema Em fazer Update

Bom to precisando fazer a parte de update de Funcionario aki no sistema,
mas n ta dando mto certo nao ;/.
Tipo os q eu ja tinha feito tinha o um Campo id na tela, entao eu dava um campo.gettext() sem problemas.

mas eu n tenho agora, e n to acertando alguem pode me da uma ajuda?

pensei em fazer assim

public void EditarFuncionario(){
		try{
		String sql = "Update Funcionario Set fun_nome = ? where fun_id = ?";
		ps.setString(1, txtNome.getText());
		ps.setLong(2, rs.getLong("fun_id"));
		int r = ps.executeUpdate(sql);
		if(r == 1){
			System.out.println("okay");
		}
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
	}

Então ai a exception q dah eh essa!. alguem sabe como me ajudar Valeu

Tipo to fazendo pra ajeita 1 campo dps eu ajeito o resto, so to pegando a ideia;
Obrigado

Não entendi esse resultset que está utilizando. Você não tem o código desse funcionário disponivel em algum lugar?
Acho que seria melhor mudar o seu método para algo como:

public void EditarFuncionario(int idFun, String nomeFun){   
        try{   
        String sql = "Update Funcionario Set fun_nome = ? where fun_id = ?";   
        ps.setString(1, nomeFun);   
        ps.setLong(2, idFun);   
        int r = ps.executeUpdate(sql);   
        if(r == 1){   
            System.out.println("okay");   
        }   
        }   
        catch (SQLException e) {   
            e.printStackTrace();   
        }   
    }  

Então eu n tenho mas eu pego ele…
Com o rs.getLong(“fun_id”));

Tipo c eu fizer isso ate, imprimi o id se eu joga ele na variavel, mas ali parece q n ta funcionando direito…

Imaginei. Implementei com seu metodo e deu a mesma coisa.

Certo, mas se você da um print no rs, ele traz o código?
você já testou isso:

public void EditarFuncionario(){   
        try{
        System.out.println(rs.getLong("fun_id"));
        /*   
        String sql = "Update Funcionario Set fun_nome = ? where fun_id = ?";   
        ps.setString(1, txtNome.getText());   
        ps.setLong(2, rs.getLong("fun_id"));   
        int r = ps.executeUpdate(sql);   
        if(r == 1){   
            System.out.println("okay");   
        }  
        */ 
        }   
        catch (SQLException e) {   
            e.printStackTrace();   
        }   
    } 

Foi o q eu disse.

x)…
Sim ele imprimi

ahhh…faça um teste assim:

public void EditarFuncionario(){   
        try{   
        String sql = "Update Funcionario Set fun_nome = ? where fun_id = ?"; 
        //passe esse SQL novamente para o ps. Só não sei como você recebe a conexão ai, mas deve ser algo parecido com isso:
        ps = conexao.prepareStatement(sql);
        ps.setString(1, txtNome.getText());   
        ps.setLong(2, rs.getLong("fun_id"));   
        int r = ps.executeUpdate(sql);   
        if(r == 1){   
            System.out.println("okay");   
        }   
        }   
        catch (SQLException e) {   
            e.printStackTrace();   
        }   
    } 

Deu essa exception aki …

Cara faz o seguinte…

no ID não passa Long passa string e ve se funciona…

Exemplo:
ps.setString(2, rs.getString(“fun_id”));

ja tive problema parecido…
mas não era postgress que usada, talvez seja a mesma coisa…

Karamba Mesmo assim num funciono.

ngm tem mais ideia ja tentei 1000 baratos e nds

Consegui Ufa =D;. Valeu…

Então Agora q eu olhei mais atentamente o codigo q eu vi…

public void EditarFuncionario(){ try{ String sql = "Update Funcionario Set fun_nome = ? where fun_id = ?"; //passe esse SQL novamente para o ps. Só não sei como você recebe a conexão ai, mas deve ser algo parecido com isso: ps = conexao.prepareStatement(sql); // Que Vc Passa A String AKi ps.setString(1, txtNome.getText()); ps.setLong(2, rs.getLong("fun_id")); int r = ps.executeUpdate(sql); // E Tb Ta Passando Aki Por isso dava Erro So tirei Ela daki ai Funfo if(r == 1){ System.out.println("okay"); } } catch (SQLException e) { e.printStackTrace(); } }

Valeu a todos q Deram uma Força =]