Dados Banco para TextField

18 respostas
kuroneko

pessoas me deem uma luz haha

eu estou tentando jogar o dado de algo que tenho no banco em um textfield

como eu faço isso, tava tentando aqui mas sem muito sucesso.

ja tenho o que recupera do banco certo funcionando

ah

select campo from tabela where codigo = ?

esse comando esta correto ? no java está dizendo que ta errado… (quando executo no caso)

18 Respostas

Hebert_Coelho

Qual o erro aparece?

kuroneko

You have an error in your SQL syntax

porem ainda preciso saber como joga o que vem do banco no textfield

Hebert_Coelho

kuroneko:
You have an error in your SQL syntax

porem ainda preciso saber como joga o que vem do banco no textfield


Tem como coloca a consulta?

kuroneko

eu tava tentando assim:

String codigo =  (String) selectCarreira.getSelectedItem();
   
        try {

           String printCar = "SELECT Carreira FROM con_carreira where CodCarreira = ?";
       
           PreparedStatement stm = (PreparedStatement) conn.getConexao().prepareStatement(printCar);
           
           ResultSet rs = stm.executeQuery("SELECT Carreira FROM con_carreira where CodCarreira = ?"); 
           
           stm.setInt(1, Integer.valueOf(codigo));
           String dados = rs.getString("Carreira");
           
           campoCarreira.setText(dados);
Hebert_Coelho

SELECT Carreira FROM con_carreira where CodCarreira = ?

Vc tem o campo Carreira dentro da tabela con_carreira? Você tem essa tabela?

kuroneko

sim, tanto que o select que uso pra preencher uma jtable funciona

só que com esse dai onde eu quero só um campo especifico não vai O.o

Hebert_Coelho

E como está esse select acima?

Coloca também como são utilizados, tipo no código: String dados = rs.getString(“ddd”);

kuroneko
try {
           Statement stm = (Statement) conn.getConexao().createStatement();
      
           ResultSet rs = stm.executeQuery("SELECT * FROM con_carreira"); 
           
           while(rs.next()) {

                  dados[0] = rs.getString("CodCarreira");
                  dados[1] = rs.getString("Carreira");
                  
                  model.addRow(dados); 
                         
           }

esse é o da jtable

Hebert_Coelho

Você reparou que você está executando as queries de modo diferente? Pq vc mudou o modo da query?

kuroneko

coloquei [/dado] ali lol

rs.next, eu imaginei que ele iria ler tudo e nao ia trazer o que eu queria, que só um dado

kuroneko

coloquei assim agora

try {
           Statement stm = (Statement) conn.getConexao().createStatement();
      
           ResultSet rs = stm.executeQuery("SELECT Carreira FROM con_carreira where CodCarreira = 2"); 
           
           while(rs.next()) {

                  dados[0] = rs.getString("Carreira");
                  
                  campoCarreira.setText(dados[0]);
                         
           }

        } catch (SQLException ex) {
            Logger.getLogger(DelCarreira.class.getName()).log(Level.SEVERE, null, ex);
        }

funcionou adiciono o dado no textfield... porem quando coloco la "CodCarreira = ?" ele continua dando aquele erro la de cima, preciso de um preparedStatement para passar o valor que ta vindo do combobox certo ?

por isso que eu fiz do outro jeito

usando so o resultset n sei como fazer, pode me ajudar ?

ViniGodoy
  1. Você não deve passar novamente a query no método executeQuery;
  2. Você deve chamar o setInt antes de executar a query (o setInt serve para dizer para o preparedStatement o que é a ?)

Veja:

PreparedStatement stm = conn.getConexao().prepareStatement("SELECT Carreira FROM con_carreira WHERE CodCarreira = ?");  
           stm.setInt(1, Integer.valueOf(codigo));  

           ResultSet rs = stm.executeQuery();             
           String dados = rs.getString("Carreira");  
           campoCarreira.setText(dados);
kuroneko

vlw vini com o que você falou eu fiz assim

try {
           
            PreparedStatement stm = (PreparedStatement) conn.getConexao().prepareStatement("SELECT Carreira FROM con_carreira WHERE CodCarreira = ?");    
            stm.setInt(1, Integer.valueOf(codigo)); 
            
            ResultSet rs = stm.executeQuery();  
            
            while(rs.next()) {
                
            String dados = rs.getString("Carreira");    
            campoCarreira.setText(dados); 
            
            }

adicionei o rs.next e agora ta ok vlw pela ajuda

edit: aproveitando o topico, me tira uma dúvida, quando o programa da um exception, ele para totalmente de funcionar ?

ViniGodoy

Ele é desviado para o catch daquela exception.

Se o catch não existir, a exception irá para o método que chamou a função que disparou a exception.
Se esse método também não tiver um try, a exception continua subindo, até que eventualmente chega no main.

Se o main ainda não tiver o try, ele é finalizado e o programa acaba.

kuroneko

entao o programa não para a execução?

digamos assim selecionei um item no combo e ele deu um exception, ai eu pego e seleciono outro item do combo que digamos que esta funcional, então aparentemente é para ele executar normal ?

espero que deu para entender a dúvida

ViniGodoy

Se você estiver tratando com o catch, não para não.

ViniGodoy

Seria uma boa você ler esses artigos:




kuroneko

vou dar uma lida sim obrigado

desculpa as dúvidas de iniciante, eu faço faculdade e tals de SI, mas a parte de java do nosso curso foi bem falha, ja tivemos 6 profs diferentes… e acabou nenhum ensinando bulhufas…

o que eu aprendi foi socando a cabeça sozinho

Criado 17 de janeiro de 2012
Ultima resposta 17 de jan. de 2012
Respostas 18
Participantes 3