库存中的java编辑功能问题

时间:2017-12-08 11:39:01

标签: java sql

我对此很新,所以我真的很感激一些建议。我一直试图用管理中的库存编辑功能弄清楚我的问题几个小时,但仍然无法找到我做错了。

try{
        int index = jTable1.getSelectedRow();
        String id = jTable1.getValueAt(index, 0).toString();
        String code = txtCode.getText();

编辑前和编辑前的金额

        int oldQty = Integer.parseInt(jTable1.getValueAt(index, 3).toString());
        int newQty = Integer.parseInt(txtQty.getText());
        int diff = newQty - oldQty; 

在编辑之前查找代码

        Connection c = Db.getConnection();
        String oldCode = jTable1.getValueAt(index, 1).toString();
        String sql = "SELECT id FROM tb_product WHERE code=" + oldCode;
        ResultSet rs = c.createStatement().executeQuery(sql);

        rs.next();
        int oldProductId = rs.getInt("id");

寻找产品

        sql = "SELECT id FROM tb_product WHERE code=" + code;
        rs = c.createStatement().executeQuery(sql);

更新广告资源

        if (rs.next()) {
            int productId = rs.getInt("id");

            sql = ""
                    + "UPDATE tb_import SET"
                    + "product_id=?, import_qty=?"
                    + "WHERE id=?";

            PreparedStatement pre = c.prepareStatement(sql);

            pre.setInt(1, productId);
            pre.setString(2, txtQty.getText());
            pre.setString(3, id);
            pre.executeUpdate();

            if (oldProductId == productId) {

使用新值更新现有库存

                sql = "UPDATE tb_product SET qty = qty + ? WHERE id=?";

                pre = c.prepareStatement(sql);
                pre.setInt(1, diff);
                pre.setInt(2, productId);
                pre.executeUpdate();

            } else {

                sql = "UPDATE tb_product SET qty = qty - ? WHERE id = ?";

                pre = c.prepareStatement(sql);
                pre.setInt(1, oldQty);
                pre.setInt(2, oldProductId);
                pre.executeUpdate();

                sql = "UPDATE tb_product SET qty = qty + ? WHERE id=?";

                pre = c.prepareStatement(sql);
                pre.setInt(1, newQty);
                pre.setInt(2, productId);
                pre.executeUpdate();
          }
            this.formInternalFrameOpened(null);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }`enter code here`
}   

0 个答案:

没有答案