gpt4 book ai didi

Java SQL更新错误: data type mismatch

转载 作者:行者123 更新时间:2023-12-01 15:21:21 31 4
gpt4 key购买 nike

我在 ms access 中创建了一个表。我已在 MS-access 中将 ID 的数据类型设置为自动编号。在java中,当我尝试更新记录时。 netBeans IDE 给出错误“条件表达式中的数据类型不匹配”。但是当我更改表中没有的 ID 号时,它就可以正常工作了。代码如下。

String sql = "Update table1 set price ='" + txtPrice.getText() + "', quantity='" + txtQuantity.getText() + "', description='" + txtDescription.getText() + "' where id= " + txtid.getText() + "";
try {
pst = conn.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Updated");
UpdateJTable();
} catch (Exception e) {

JOptionPane.showMessageDialog(null, e);
}

最佳答案

我认为您可能也混淆了常规 Statement 和PreparedStatement 对象。 PreparedStatement 使您有机会使用占位符(您可能会在很多 sql 语句中看到的 ?),并让PreparedStatement 为您做更多的工作。

尝试像这样编写 sql 语句:

update table1 set price = ?, quantity = ?, description = ? where id = ?

然后使用你的PreparedStatement对象,你可以这样做:

pStmt.setInteger(1, Integer.valueOf(txtPrice.getText())

对于每个参数。我已经有几年没有直接使用PreparedStatement了,但是如果没记错的话,参数都是从1开始的。

但你的基本问题是选角问题。为此使用PreparedStatement 还可能使您的代码更干净(并且更安全)。

关于Java SQL更新错误: data type mismatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868170/

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