java.sql.SQLException:对空结果集的非法操作
我有这样的代码java.sql.SQLException:对空结果集的非法操作,java,mysql,Java,Mysql,我有这样的代码 String sql_kode_kategori = "select kategori from data_kategori \n" + "where kode_kategori = ?"; try{ pst = (PreparedStatement) koneksiMySQL.GetConnection().prepareStatement(sql_kode_kategori);
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,但出现了错误,如果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
}
从查询中删除
\n
:
String sql_kode_kategori = "select kategori from data_kategori where kode_kategori = ?";
尝试验证此
(字符串)cbKategori.getSelectedItem()
变量是否包含正确的值。要做的第一件事:停止将值直接插入SQL。使用参数化SQL,就像您对查询部分所做的那样。如果rst2.next()返回false,则rst2.getString(1)没有数据。你需要像(rst2.next())一样检查结果{你能给我一些源代码的例子吗?程序不能以那种方式运行?请解释。你有错误吗?没有编译?@Pramesty Jaya尝试验证这个(字符串)cbKategori.getSelectedItem()变量确实包含正确的值。这是完美的一部分,这部分没有错哦,天哪,我的错。我想让kode_kategori使用kategori,我使用了错误的查询。谢谢,伙计