gpt4 book ai didi

java - 如何保存单元格中的新值而不是旧值?

转载 作者:行者123 更新时间:2023-12-01 05:49:42 26 4
gpt4 key购买 nike

我在 JScrollPane 中有一个 JTable,数据来自数据库。单元格是可编辑的,我想将新值(编辑后的值)保存在数据库中。问题是 getValueAt(row, col) 返回旧的、未经编辑的值。

以下代码从单元格中获取值并将其插入数据库。

    DefaultTableModel tableModel = (DefaultTableModel) table.getModel();    int row = table.getEditingRow();    if(row == -1) return -1;    String name = tableModel.getValueAt(row, 0).toString();    String stringPrice = tableModel.getValueAt(row, 1).toString();    float price = Float.parseFloat(stringPrice);    products.updateProduct(name, price);    ...    return 1;

这是我在 updateProduct(name, Price) 方法中得到的内容:

UPDATE productsSET `prod_name` = 'OLD_NAME', `prod_price` = 'OLD_PRICE'WHERE `id` = 4

而不是:

UPDATE productsSET `prod_name` = 'NEW_NAME', `prod_price` = 'NEW_PRICE'WHERE `id` = 4

可能有一个简单的解决方案,但我无法弄清楚。如有任何帮助,我们将不胜感激。

最佳答案

在不确切知道如何调用您的代码片段的情况下,我猜测您的问题是单元格编辑器尚未停止,因此模型尚未使用新数据进行更新。

您可以使用 TableModelListener 在单元格中的数据发生更改时收到通知。那么你就可以保证模型中的数据是正确的。

或者,如果您使用“保存”按钮来更新数据库,那么您需要阅读 Table Stop Editing来解决您的问题。

关于java - 如何保存单元格中的新值而不是旧值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com