Método pesquisar

5 respostas
progJava

Estou utilizando um método pesquisar mas estou com dificuldades .Mando pesquisar umas palavras ele pesquisa quando mando pesquisar outras palavras ele falha constando o seginte erro:

erro :java.lang.StringIndexOutOfBoundsException:String Index out of range 6

Gostaria de saber o que ocasione esse erro ,e se alguém tivesse outro método para efetuar pesquisa me mandasse
algum exemplo.

Código:

public void pesquisa_digitacao() { try { teste.resultset.first(); String igual = "n"; int tamanho_pesquisa = tf_pesquisar.getText().length(); while(igual.equals("n")) { String pesquisado = teste.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa)); if (pesquisado.equals(tf_pesquisar.getText())) { igual = "s"; } else teste.resultset.next(); } // nas linhas abaxo, mostra_conteudo_tabela(); codigo.setText(teste.resultset.getString("cli_codigo"));//Essas duas linhas é necesária nome.setText(teste.resultset.getString("cli_nome")); // mostrar_dados(); //cb_pesquisa.setSelectedItem(tf_nome.getText()); } catch(Exception erro) { JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro); } // TODO add your handling code here: }

5 Respostas

viniciusgundim

Vc está pesquisando de um banco de dados???
se tiver seria mais facil montar uma query de pesquisa, usando o comando like…
faço isso com algumas aplicações e funciona blz…

viniciusgundim

:arrow:

hodrigohamalho

java.lang.StringIndexOutOfBoundsException
Esse erro costuma acontecer quando você procura um dado em uma posição que não existe:
Por exemplo um você declara um Array com 3 posições
E tenta imprimir/utilizar a posição 4…

dando uma olhada por cima desse teu código tem quase certeza que eh algum problema com esse tamanho_pesquisa…
você ta pesquisando coisa a + do que deveria…

abraço.

renanreismartins

como o amigo acima citou, o problema é devido a variavel tamanho_pesquisa.

amigo seu problema está na linha:

String pesquisado = teste.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa));

a variavel tamanho_pesquisa aponta para uma posição maior que o tamanho da string retornada por:

teste.resultset.getString("cli_nome")

esse codigo ta bem propenso a erros.

tb procure tambem sobre blueprints para nomear as variaveis de acordo com os padores e de forma mais legivel ex:

tamanho_pesquisa - tamanhoPesquisa

leandro.augusto

Metodos do prof Neri Neitzke.. ja vi isso antes hehehe olha ai no meu funciona de boa

con_cliente.executeSQL("select * from cliente where cli_nome like '"+tf_pesquisa.getText()
        +"%' order by "+ordenacao);
        preencher_jtable(); // filtrar na grade sem clicar no botao filtrar
        
        
        try
                
        {
            
            con_cliente.resultset.first();
            String igual = "n";
            int tamanho_pesquisa = tf_pesquisa.getText().length();
            while (igual == "n")
{
                
                String pesquisado = con_cliente.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa));
                
                if(pesquisado.equals(tf_pesquisa.getText()))
{
                    igual = "s";
                    
                }
else
    con_cliente.resultset.next();
                
            }
            // mostra conteudo da tabela
            tf_codigo.setText(con_cliente.resultset.getString("cli_codigo"));
            mostrar_dados();
            
        }
        
        catch(Exception erro)
{
            
            
            JOptionPane.showMessageDialog(null,"Não conseguiu localizar"+erro);
            
            
        }
Criado 17 de julho de 2009
Ultima resposta 21 de jun. de 2010
Respostas 5
Participantes 5