Estado de cursor inválido

Fiz o método de pesquisa só que ele só pesquisa se for em ordem Ex:eu mando ele pesquisar o promeiro registro
ele pesquisa blz se eu quiser pequisar outro ele só pesquisa o segundo registro,depois só o terçeiro ,depois só o quarto só em ordem o seguinte erro consta : Estado de cursor inválido . O que será?

Código:

[code]public void pesquisa_digitacao()
{
try
{
banco.resultset.first();
String igual = “n”;
//int tamanho_pesquisa = tf_pesquisa.getText().length();
while(igual.equals(“n”))
{
String pesquisado = banco.resultset.getString(“titulo”); //
if (pesquisado.equals(tf_pesquisa.getText()))
{
igual = “s”;
}
else
{
banco.resultset.next();
}

        }   
           
        // nas linhas abaxo, mostra_conteudo_tabela();   
      //  tf_numero.setText(banco.resultset.getString("numero"));//Essas duas linhas é necesária   
      // tf_titulo.setText(banco.resultset.getString("titulo"));   
        tf_sobre.setText(banco.resultset.getString("sobre"));   
       tf_data.setText(banco.resultset.getString("data"));   
      tf_hora.setText(banco.resultset.getString("hora"));   
        tf_diretorio.setText(banco.resultset.getString("diretório"));   
        // mostrar_dados();   
        //cb_pesquisa.setSelectedItem(tf_nome.getText());   
         banco.resultset.first();   
    }   
    catch(Exception erro)   
    {   
        JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro);   
    }     
   // TODO add your handling code here:   
}  [/code]
  1. Se você não sabe o que está fazendo, não use resultset.first(). Ele vai dar erros se você tiver algum resultado vazio. Não é bom ficar andando sobre um resultset de lá para cá; normalmente é melhor sempre andar para frente, a menos que você saiba o que está fazendo.

  2. O correto é normalmente fazer algo como:

while (resultset.next()) {
    ... pegar os valores
    ... fazer alguma coisa
}