Duvida addrow em jtable [RESOLVIDO]

11 respostas
paulomn

é o seguinte, eu tenho um arraylist q contem um numero x de valores, e estou usando um for para fazer uma consulta de cada valor um por um, e ir colocando o resultset na jtable com o metodo addrow, porem esta dando esse erro "[color=red]SQLException: Operação inválida na posição corrente do cursor.[/color]",
sendo que eu coloquei um print para teste, e o print retorna os valores da arraylist normalmente, segue o codigo...

public static  void incluitabela() {
        Connection con;
        Statement stmt;
        try{

        con = DriverManager.getConnection("jdbc:derby://localhost/bancodados","root", "pass");
        stmt = con.createStatement();
      //livros eh minha arraylist, que ja esta com os valores
      for(int i = 0; i < livros.size(); i++){
      System.out.println("livro n. "+i+" id "+livros.get(i));

      ResultSet rs = stmt.executeQuery("select id, cdd, titulo, autor from app.livro where id="+livros.get(i)+"");

      String[] colunasTabela = new String[]{"ID", "CDD"};
      DefaultTableModel modelo = new DefaultTableModel(null,colunasTabela){
        public boolean isCellEditable (int row, int col){
            return false;
        }
	};
        Telas.Menu.tabelaRetorno.setModel(modelo);

             modelo.addRow(new Object[]{
             Integer.toString(rs.getInt("id")),
             Integer.toString(rs.getInt("cdd"))}
             );
      
      }
        } catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
    }

11 Respostas

pedroroxd

Provavelmente é nessa linha:

ResultSet rs = stmt.executeQuery("select id, cdd, titulo, autor from app.livro where id="+livros.get(i)+"");

Esse livros.get(i) está estranho…

Tem certeza que o usuário e a senha estão corretos?

paulomn

entao esse livros.get(i) no select, serve para consultar na tabela livro a id q estiver na posicao i da arraylist e colocar os dados encontrados na tabela

por exemplo quando i for 0, ele vai fazer o select com o valor q estiver na posicao 0 da arraylist e assim sucessivamente

pedroroxd

Faz assim…
Coloca um break point na primeira linha desse seu código, e manda depurar…
Ae vai abaixando linha por linha, até ver em que linha q está dando o erro… Ae depois vc posta qual é aki…

paulomn

sim sao os que eu configurei, o resto do programa funciona normalmente com eles

pedroroxd

Qual é a linha que não passa pelo break point?

paulomn

coloka um break; na primeira linha do for vc queh dize?

pedroroxd

Na primeira linha do click do botão…
E vai descendo linha por linha…
A linha que não passar é a que ta dando erro

NightDark

você esqueceu do next()

tenta assim:

while(rs.next()){ modelo.addRow(new Object[]{ Integer.toString(rs.getInt("id")), Integer.toString(rs.getInt("cdd"))} ); }

paulomn

se eu uso while(rs.next()) ele nao coloka todos os itens do arraylist na tabela, so coloca o ultimo, nao coloka os outros

paulomn

descobri o erro, era o for, ele nao tava funcionando do jeito certo, troquei por while fiko tudo beleza, vlw ae pela ajuda

NightDark

Num esquece de editar o Título adicionando [RESOLVIDO] :smiley:

Criado 26 de setembro de 2009
Ultima resposta 26 de set. de 2009
Respostas 11
Participantes 3