[DUVIDA] Select e depois Insert no BD

Opa pessoal olha eu de novo com minhas duvidas xD

Bom estou fazendo um select no banco e com a informação q estou pegando quero ja fazer um insert…

Oq esta errado ai pessoal ???

[code]try{
//Registrando o driver:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
//Estabelecendo a conexão através do ODBC criado no Painel de Controle:
con = DriverManager.getConnection(“jdbc:odbc:SQLEXPRESS2005”,"","");
//Criando um objeto Statement para enviar requisições SQL para o Banco de Dados
stmt = con.createStatement();
//Executando SQL:
ResultSet rs = stmt.executeQuery(“select Cd_Area from AREA where Nome_Area = '”+item+"’");
rs.next();

 area = (rs.getString("Cd_Area"));
                                                                    
 sql = "insert CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")";                                                                                              
 
 stmt.executeUpdate(sql);

}//FIM TRY CONEXAO
catch(ClassNotFoundException ERRO){
JOptionPane.showMessageDialog(null, “ERRO ao Carregar JDBC-ODBC”);
}
//FIM TRY CADASTRO NAO ENCONTRADO - CAI NO CATCH
catch(SQLException ERRO) {
JOptionPane.showMessageDialog(null, “Cadastro não encontrado meah”,“Erro”,JOptionPane.ERROR_MESSAGE);
}[/code]
ValeuUUu

Abrasss a todos :wink:

qual o erro que está ocorrendo?

Da um erro no:

stmt.executeUpdate(sql); 

e vai direto para o segundo catch…

olha a linha 14:

insert CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")"; 

faltou o INTO

insert into CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")";
e essa conversao para int não é necessária… da uma analisada geral nesse seu código…

mesmo assim nao funcionou :frowning:

Não sei oq fazer mais =/

Valeu ai por tentarem ajudar .o/

posta o erro cara…

e se puder usa um preparedstatement, bem melhor…

utilize coringas ao invés de concatenações cara fica muito melhor o código da query.

caso voce queira fazer um update verifica as constraints do seu banco primeiro e utilize a clausula update fica mais bonito.

tente utilizar a query update tabela set camp = valordesejado

segue um exemplo de uma query que eu fiz

PreparedStatement stmt = this.connection .prepareStatement("insert into contatos(nome, email, endereco)values(?,?,?)"); // Insere os dados o primeiro campo eh o valor do coringa(INDEX) e o // segundo o que deseja colocar no coringa stmt.setString(1, contato.getNome()); stmt.setString(2, contato.getEmail()); stmt.setString(3, contato.getEndereco()); // executa o comando e em seguida fexa a conexão stmt.execute(); stmt.close();

Valeu pela dica galera…

Eu consegui resolver aqui :-o

Abrasss a todos

E brigadao msm pela ajuda :wink: