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