簡體   English   中英

如何從組合框插入數據庫?

[英]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());
    }
}

錯誤信息 DB 表 tb_produk DB 表 tb_kategori

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM