Percorrer banco de dados

Boa tarde, tenho uma tabela chamada despesabase com os seguintes campos: id_despesabase data_despesa, id_base, id_fornecedor, valor_despesa, numeronota, desconto, tipo_pagamento

preciso percorrer minha tabela e comparar com o campo onde digito o numero da nota para ver se ela já não foi lançada

Giovanni,

Acredito que a pergunta deveria estar na categoria de Banco de Dados, mas vamos lá.

  1. Antes de qualquer coisa é necessário levar em consideração o tamanho do sistema e a quantidade de registro que essa tabela vai receber, pois o Número da Nota pode se repetir, logo você pode ter 2 ou mais notas com o mesmo número, porém com itens diferentes. Sendo assim o correto é realizar a comparação pela chave de acesso da Nota.

  2. No seu cenário, para que obtenha o resultset esperado, basta fazer um select em todos os registros e filtrar pelo campo numeronota = valor digitado

eu estava pensando em criar uma condição comparando numero da nota, fornecedor e valor total pois no sistema nao posso ter notas com o msm itens e valores.
eu tentei utilizar os seguinte codigo:

try {
conecta.executaSQL(“select * from despesabase inner join base on despesabase.id_base=base.id_base where nome_base = '” + jComboBox_base.getSelectedItem() + “’”);
conecta.rs.first();

            if (conecta.rs.getInt("numeronota") == Integer.parseInt(jTextField_nNota.getText())) {
                JOptionPane.showMessageDialog(rootPane, "numero nota: " + conecta.rs.getInt("numeronota") + "base: " + conecta.rs.getString("nome_base"));

            } else {
                mod.setId_despesaBase(codDespesa);
                mod.setNumeroNota(Integer.parseInt(jTextField_nNota.getText()));
                mod.setNomeBase((String) jComboBox_base.getSelectedItem());
                mod.setNomeFornecedor(jTextField_fornecedores.getText());
                mod.setValorDespesa(Double.parseDouble(jLabel_total.getText()));
                mod.setDataDespesa(jFormattedTextField_data.getText());
                mod.setDesconto(Double.parseDouble(jTextField_desconto.getText()));
                mod.setPagamento((String) jComboBox1.getSelectedItem());
                control.fechaVenda(mod);
                ParcelaDespesa pd = new ParcelaDespesa(codDespesa);
                TelaPrincipal.desktopPane.add(pd);
                pd.setVisible(true);
                pd.setPosicao();
                dispose();
            }


    } catch (SQLException ex) {
        Logger.getLogger(DespesaBase.class.getName()).log(Level.SEVERE, null, ex);
    }

Porem o resultSet ele esta pegando a primeira posição do banco e verificando. e não estou conseguindo verificar os demais registros da tabela

Amigo se você quer ler os resultado do banco de dados você deve fazer igual o código abaixo que vai passar por todas as linhas da sua tabela.

while(conecta.rs.next()){

if(conecta.rs.getInt(“numeronota”) == Integer.parseInt(jTextField_nNota.getText()) )

//faz isso
}
else{
//faz isso
}

}

Agora uma forma melhor de fazer já é verificando se o registro existe na tabela como o @Allan_HB falou.