Java.sql.SQLException em jComboBox

9 respostas
Q

Pessoal, eu quero fazer uma consulta atravez do item que tem no jComboBox
aki vai meu codigo

public void consulta(){
       String nome = (String) jcEmitente.getSelectedItem();
       try{
            cConexao conEmitente = new cConexao();
            conEmitente.getConnection();
            conEmitente.executeMostrarDadosEmitente("SELECT * FROM EMITENTE WHERE NomeEMITENTE = '"+nome+"'");
            jtCodEmitente.setText(conEmitente.resultset.getString(1)); //jTextFields
            jtEmitente.setText(conEmitente.resultset.getString(2)); //jTextFields
       }catch(Exception erro){
            erro.printStackTrace();
       }
   }

chamo esse metodo no evento actionPerformad
mas da excessao de "java.sql.SQLException
quando uso jtCodEmitente.setText(conEmitente.resultset.getString(1)); //jTextFields jtEmitente.setText(conEmitente.resultset.getString(2)); //jTextFields

e nao sei por qual motivo

9 Respostas

Hebert_Coelho

Tem como você colocar o código completo do erro?

Q
java.sql.SQLException
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
        at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
        at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
        at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
        at Formes.ConfiguraRecibo.consulta(ConfiguraRecibo.java:735)
        at Formes.ConfiguraRecibo.jButton1ActionPerformed(ConfiguraRecibo.java:418)
        at Formes.ConfiguraRecibo.access$1600(ConfiguraRecibo.java:40)
        at Formes.ConfiguraRecibo$11.actionPerformed(ConfiguraRecibo.java:316)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at Formes.ConfiguraRecibo$13.dispatchEvent(ConfiguraRecibo.java:611)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Q

a excessao é lançada quando chega nesta linha:

jtCodEmitente.setText(conEmitente.resultset.getString(1)); //jTextFields jtEmitente.setText(conEmitente.resultset.getString(2)); //jTextFields

marcoslogan

Por que ao invés de números você não coloca o nome do campo tipo assim:

jtCodEmitente.setText(conEmitente.resultset.getString("codigo"));
   jtEmitente.setText(conEmitente.resultset.getString("nome"));

Por que você não usa arraylist?

Q

Cara, era pra ser uma coisa tao simples:
o usuario seleciona o objeto
é feita a query referente aquele objeto
e mostra o resultado no jTextField
mas nao sei porque nao da certo.

vou tentar arrayList
mas acho que nao vou ter sucesso.

DaniloAndrade

cara acho que tem dois problemas

um o nosso colega marcoslogan já respondeu

vc esta fazendo uma consulta passando uma query do tipo select * from

nesse tipo de consulta busca -se no resultset pelos nomes das colunas

segundo provável problema

dentro da sua classe cConexao quando vc chama o metodo executeMostrarDadosEmitente(“SELECT * FROM EMITENTE WHERE NomeEMITENTE = '”+nome+"’") vc esta chamando o metodo next() do resultset ?

coloque o código da classe cConexao pra analisar -mos

pmlm

Em qualquer consulta pode-se aceder aos elementos por nome ou por índice (a começar em 1)

Provavelmente este é O problema.

DaniloAndrade

Em qualquer consulta pode-se aceder aos elementos por nome ou por índice (a começar em 1)

Provavelmente este é O problema.

ainda não havia feito esse teste :oops: , até por que eu não tenho como saber se o que estou buscando pelo índice é o que eu realmente quero, por isso nesse tipo de consulta busco sempre pelo nome da coluna.

aprendi mais uma, valeu

pmlm

Aí o assunto já é outro. Estamos a falar de boas práticas. :slight_smile:

Criado 13 de dezembro de 2012
Ultima resposta 14 de dez. de 2012
Respostas 9
Participantes 5