2015-12-07 31 views
1

我有這樣值java.sql.SQLException:在空的結果不合法的操作設置

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

我試圖讓kode_kategori與駕駛員學校,但這個錯誤出現代碼,請幫我

+1

首先要做的事:停止將值直接插入到SQL中。正如你已經爲查詢部分所做的那樣,使用參數化SQL。 –

+1

如果rst2.next()返回false,則不會有rst2.getString(1)的數據。你需要檢查結果,如果(rst2.next()){ – Jan

+0

你可以給我一些源代碼的例子嗎? –

回答

0

從查詢中刪除\n

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

嘗試驗證這個(String)cbKategori.getSelectedItem()變量不包含正確的價值。

+0

仍然無法正常工作 –

+0

@Produsty Jaya嘗試驗證此(String)cbKategori.getSelectedItem()變量是否包含正確的值。 – Abdelhak

+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 
} 
+0

我已經嘗試過,但仍不能正常工作 –

+0

有任何錯誤?你可以給堆棧跟蹤嗎? – Jan

+0

程序無法以這種方式運行 –

相關問題