【问题标题】:java.sql.SQLException : Illegal operation on empty result setjava.sql.SQLException : 对空结果集的非法操作
【发布时间】:2015-12-07 13:14:27
【问题描述】:

我有这样的代码

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 但出现该错误,请帮助我

【问题讨论】:

  • 要做的第一件事:停止将值直接插入到您的 SQL 中。使用参数化 SQL,就像您已经为查询部分所做的那样。
  • 如果 rst2.next() 返回 false,则 rst2.getString(1) 没有数据。您需要检查结果为 if(rst2.next()) {
  • 你能给我一些源代码的例子吗?

标签: java mysql


【解决方案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
}

【讨论】:

  • 程序无法以这种方式运行
  • ?请解释。你有错误吗?不编译?
【解决方案2】:

从您的查询中删除 \n

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

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

【讨论】:

  • @Pramesty Jaya 尝试验证这个 (String)cbKategori.getSelectedItem() 变量是否包含正确的值。
  • 这部分工作完美,没有错
  • 天哪,我的错。我想让kode_kategori 使用类别,我使用了错误的查询。谢谢大佬
猜你喜欢
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 2016-04-30
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
相关资源
最近更新 更多