java.sql.SQLException:对空结果集的非法操作

时间:2015-12-07 13:14:28

标签: java mysql

我有这样的代码

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);
    }

我试图用kategori获取kode_kategori但是出现了这个错误,请帮帮我

2 个答案:

答案 0 :(得分:1)

如果rst2.next()返回false,则rst2.getString(1)没有数据。您需要检查结果

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
}

答案 1 :(得分:0)

从查询中删除\n

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

尝试验证此(String)cbKategori.getSelectedItem()变量是否包含正确的值。