Erro ao carregar dados "java.sql.sqlexception resultset is type_forward_only sqlite"

Bom dia,

Uma luz por favor, não sei o que a porque o banco de dados SQLite não funciona para carregar os dados no JFrame nos campos já fiz de tudo que eu conheço e pesquisa,
sempre quando cadastro alguma informação quando vou navegar no cadastro vem o seguinte erro (java.sql.sqlexception resultset is type_forward_only sqlite).

Alguem poderia me ajudar?

Segue os prits.

public class BdConexaoDAO {
private static Connection conexao;
public ResultSet resultset;
public PreparedStatement st;
public Statement statement;

public BdConexaoDAO() //Abre a Conexão
{
    try
        {
            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:C://DRIMONEY/BDDADOS/TBDRIMONEY.db";
            conexao = DriverManager.getConnection(url);
      //System.out.println("conexao ok");
      //JOptionPane.showMessageDialog(null,"conexao ok");
     
    }
    catch(Exception erro){
        JOptionPane.showMessageDialog(null,
      "Ocorreu um erro de conexão. Verifique a Base de Dados indicada !"+"\n" +  erro.getMessage(),"Conexão",3);
        erro.printStackTrace();
    }    

}

	public void fechaConexao(){
		
	try {
		conexao.close();
		st.close();
	}
	catch (SQLException e) {
		
		JOptionPane.showMessageDialog(null, 
                            "Erro ao tentar fechar o banco de dados");
	}    
    }


public void executeSQL(String sql)
   {
        try             
        {
            statement = conexao.createStatement(
                    ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); 
            resultset = statement.executeQuery(sql);
        }
        catch(SQLException sqlex) 
        {
           JOptionPane.showMessageDialog(null,"Não foi possível "+
                   "executar o comando sql,"+sqlex+", o sql passado foi "+sql);
        }

   }

// Metodos publicos:
public Connection getConexao()
{
    return conexao;
   
}

private void btnPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {

    try {
 
        conecta.executeSQL("SELECT * FROM TB_ABASTECIMENTO");
        conecta.resultset.first();
        txtCodigo.setText(String.valueOf(conecta.resultset.getInt("ID_ABASTECIMENTO")));
        
        java.sql.Date data = (conecta.resultset.getDate("DATA"));
        if(data != null && !data.equals(""))   
        {
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");                         
            txtData.setDate(conecta.resultset.getDate("DATA"));               
        }     
        
        JComboBoxCategoria.setSelectedItem(conecta.resultset.getString("CATEGORIA"));             
        txtValorLitro.setText(conecta.resultset.getString("VALOR_LITRO")); 
        txtValorGasto.setText(conecta.resultset.getString("VALOR_GASTO"));
        txtObservacao.setText(conecta.resultset.getString("OBSERVACAO"));
        
        
        
    } catch (Exception erro) {
    
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro "+erro);
    
      
    }
    
}    

type

Se você ler a documentação do método first() vai descobrir que ele não pode ser chamado em um ResutSet do tipo FORWARD_ONLY.

Ao invés de chamar o first(), chama o next().

Algumas questões referentes a sua classe BdConexaoDAO:

  • Se essa classe não é estática, porque o atributo Connection é estático?
  • Por que os atributos ResultSet, PreparedStatement e Statement são públicos? Eles nem deveriam ser atributos, muito menos públicos.

PreparedStatement e Statement deveriam ser variáveis locais do método responsável por executar as queries.
ResultSet deveria ser o retorno do método executeSQL(String)

Bom dia, amigo.

Então chegou a carregar com a informação do banco trocando " first()" por next(); de só que quando pede para ir para a próximo cadastro apresenta a mesma msg “java.sql.sqlexception resultset is type_forward_only sqlite”

Posta o seu código com as alterações

try {

        conecta.executeSQL("SELECT * FROM TB_ABASTECIMENTO");
        conecta.resultset.first();
        txtCodigo.setText(String.valueOf(conecta.resultset.getInt("ID_ABASTECIMENTO")));
        
        java.sql.Date data = (conecta.resultset.getDate("DATA"));
        if(data != null && !data.equals(""))   
        {
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");                         
            txtData.setDate(conecta.resultset.getDate("DATA"));               
        }     
        
        JComboBoxCategoria.setSelectedItem(conecta.resultset.getString("CATEGORIA"));             
        txtValorLitro.setText(conecta.resultset.getString("VALOR_LITRO")); 
        txtValorGasto.setText(conecta.resultset.getString("VALOR_GASTO"));
        txtObservacao.setText(conecta.resultset.getString("OBSERVACAO"));
        
        
        
    } catch (Exception erro) {
    
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro "+erro);
    
        {
          if (navega == 1)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no primeiro registro");  
            
            else if (navega == 2)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no último registro");
            else
                JOptionPane.showMessageDialog(null,
                        "Não localizou dados "+erro);
            navega=0;
        }
    }

try {
navega=1;

        conecta.executeSQL("SELECT * FROM TB_ABASTECIMENTO");
        conecta.resultset.previous();
        txtCodigo.setText(String.valueOf(conecta.resultset.getInt("ID_ABASTECIMENTO")));
        
        java.sql.Date data = (conecta.resultset.getDate("DATA"));
        if(data != null && !data.equals(""))   
        {
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");                         
            txtData.setDate(conecta.resultset.getDate("DATA"));               
        }     
        
        JComboBoxCategoria.setSelectedItem(conecta.resultset.getString("CATEGORIA"));             
        txtValorLitro.setText(conecta.resultset.getString("VALOR_LITRO")); 
        txtValorGasto.setText(conecta.resultset.getString("VALOR_GASTO"));
        txtObservacao.setText(conecta.resultset.getString("OBSERVACAO"));
        
        
    } catch (Exception erro) {
    
        JOptionPane.showMessageDialog(null,"Não pode ir para o registro anterior "+erro);
         
        {
        if (navega == 1)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no primeiro registro");  
            
            else if (navega == 2)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no último registro");
            else
                JOptionPane.showMessageDialog(null,
                        "Não localizou dados "+erro);
            navega=0;
        }
            
    }

try {
navega = 2;
conecta.executeSQL(“SELECT * FROM TB_ABASTECIMENTO”);
conecta.resultset.next();
txtCodigo.setText(String.valueOf(conecta.resultset.getInt(“ID_ABASTECIMENTO”)));

        java.sql.Date data = (conecta.resultset.getDate("DATA"));
        if(data != null && !data.equals(""))   
        {
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");                         
            txtData.setDate(conecta.resultset.getDate("DATA"));               
        }     
        
        JComboBoxCategoria.setSelectedItem(conecta.resultset.getString("CATEGORIA"));             
        txtValorLitro.setText(conecta.resultset.getString("VALOR_LITRO")); 
        txtValorGasto.setText(conecta.resultset.getString("VALOR_GASTO"));
        txtObservacao.setText(conecta.resultset.getString("OBSERVACAO"));
        
        
        
    } catch (Exception erro) {
    
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o próximo registro "+erro);
        {
        if (navega == 1)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no primeiro registro");  
            
            else if (navega == 2)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no último registro");
            else
                JOptionPane.showMessageDialog(null,
                        "Não localizou dados "+erro);
            navega=0;
        }
            
    }


     try {
                 
        conecta.executeSQL("SELECT * FROM TB_ABASTECIMENTO");
        conecta.resultset.last();
        txtCodigo.setText(String.valueOf(conecta.resultset.getInt("ID_ABASTECIMENTO")));
        
        java.sql.Date data = (conecta.resultset.getDate("DATA"));
        if(data != null && !data.equals(""))   
        {
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");                         
            txtData.setDate(conecta.resultset.getDate("DATA"));               
        }     
        
        JComboBoxCategoria.setSelectedItem(conecta.resultset.getString("CATEGORIA"));             
        txtValorLitro.setText(conecta.resultset.getString("VALOR_LITRO")); 
        txtValorGasto.setText(conecta.resultset.getString("VALOR_GASTO"));
        txtObservacao.setText(conecta.resultset.getString("OBSERVACAO"));
        
        
        
    } catch (Exception erro) {
    
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o ultimo registro "+erro);
    
        {
      if (navega == 1)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no primeiro registro");  
            
            else if (navega == 2)
                JOptionPane.showMessageDialog(null,
                        "Olha, você já está no último registro");
            else
                JOptionPane.showMessageDialog(null,
                        "Não localizou dados "+erro);
            navega=0;
        }
            
    }

Cara, reveja seus códigos.
Tem lugar onde você está chamando o first, tá chamando o last, tá chamando o previous…