简体   繁体   中英

java.sql.SQLException : Illegal operation on empty result set

I have code like this

String sql_kode_kategori = "select kategori from data_kategori \n" +
                                   "where kode_kategori = ?";
    try{
        pst = (PreparedStatement) koneksiMySQL.GetConnection().prepareStatement(sql_kode_kategori);
        pst.setString(1, (String)cbKategori.getSelectedItem());
        rst2 = pst.executeQuery();
        rst2.next();

        stat = (Statement) koneksiMySQL.GetConnection().createStatement();
        String sql_insert = "INSERT INTO data_pasal VALUES ('"+jTPasal.getText() + "','"+jTIsi_Pasal.getText()+"'"
                + ",'"+jTHukuman.getText()+"','"+jTDenda.getText()+"','"+rst2.getString(1)+"')";
        stat.executeUpdate(sql_insert);
        javax.swing.JOptionPane.showMessageDialog(null, "Data CES Berhasil Ditambahkan");
        ClearField();
        TampilTabel();

    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

i tried to get kode_kategori with kategori but that error appear, please help me

If rst2.next() returns false, there is no data for rst2.getString(1) . You need to check for result as

if(rst2.next()) { 
    stat = (Statement) koneksiMySQL.GetConnection().createStatement();
    String sql_insert = "INSERT INTO data_pasal VALUES ('"+jTPasal.getText() + "','"+jTIsi_Pasal.getText()+"'"
            + ",'"+jTHukuman.getText()+"','"+jTDenda.getText()+"','"+rst2.getString(1)+"')";
    stat.executeUpdate(sql_insert);
} else {
  // handle invalid category
}

Remove \\n from your query:

 String sql_kode_kategori = "select kategori from data_kategori where kode_kategori = ?";

Try to verify this (String)cbKategori.getSelectedItem() variable does contain right value.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM