[英]How to insert to database from combo box?
我只是想用數據庫中的值制作一些組合框,我可以選擇它並將其插入數據庫,但我有一些錯誤消息。 如何解決?
這是我的代碼:
private void btnInputDataProdukActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String sql = "insert into tb_produk (produk_kat_id,produk_nm,produk_gndre,produk_size,produk_hrg) values (?,?,?,?,?)";
try {
PreparedStatement stat = conn.prepareStatement(sql);
stat.setString(1, txtNamaProduk.toString());
String valueKat = cbKatProduk.getSelectedItem().toString();
stat.setString(2, valueKat);
String valueGender = cbGender.getSelectedItem().toString();
stat.setString(3, valueGender);
stat.setString(4, txtUkuran.toString());
stat.setString(5, txtHarga.toString());
stat.executeUpdate();
JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan");
kosong();
dataTable();
lebarKolom();
txtNamaProduk.requestFocus();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Data Gagal Disimpan" + e);
}
}
具有來自 DB 的值的組合框
public void tampil_combo(){
String sql = "select kat_id from tb_kategori";
try {
java.sql.Statement stat = conn.createStatement();
ResultSet res = stat.executeQuery(sql);
while (res.next()) {
Object[] ob = new Object[3];
ob[0]=res.getString(1);
cbKatProduk.addItem((String) ob[0]);
}
res.close();stat.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
produkt_kat_id
在您的數據庫中定義為 int。 但隨着
stat.setString(1, txtNamaProduk.toString());
你正在設置一個字符串。 另請注意,您在組合框上調用toString()
而不是所選值。
所以需要將選中的值轉換成integer:
stat.setString(1, Integer.parseInt(txtNamaProduk.getSelectedItem()));
如果txtNamaProduk.getSelectedItem()
返回 null 或者組合框還可以包含整數以外的其他值,您仍然需要添加一些錯誤處理。
您還需要更改數據庫中定義為整數的其他字段的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.