try { String query = "DELETE FROM caipu WHERE 编号=?"; PreparedStatement statement = connection.prepareStatement(query); statement.setInt(1, selectedRow); statement.executeUpdate(); JOptionPane.showMessageDialog(null, "删除成功", "提示", JOptionPane.INFORMATION_MESSAGE); } catch (SQLException e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, "删除失败", "错误", JOptionPane.ERROR_MESSAGE); } }这种情况下代码正确,但选中的数据不对
时间: 2024-03-26 18:34:40 浏览: 14
根据你提供的代码,我猜测你是在使用 `JTable` 删除数据。如果你在删除数据时选中的数据不对,可能是因为你没有正确获取被选中的行数。
具体来说,你需要使用 `JTable` 的 `getSelectedRow()` 方法获取被选中的行数,然后将这个行数传递给你的 SQL 语句,以便删除正确的记录。在你的代码中,你使用的是 `selectedRow` 变量作为 SQL 语句的参数,但是你没有给出这个变量的定义和赋值,所以我无法判断它是否正确。
另外,你还需要在删除数据之后,更新你的 `JTable` 数据模型,并使用 `JTable` 的 `updateUI()` 方法刷新界面,以便正确显示删除后的数据。
综上所述,你可以尝试修改你的代码如下:
```java
try {
int selectedRow = table.getSelectedRow(); // 获取被选中的行数
String query = "DELETE FROM caipu WHERE 编号=?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setInt(1, selectedRow);
statement.executeUpdate();
// 更新数据模型
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.removeRow(selectedRow);
// 刷新界面
table.updateUI();
JOptionPane.showMessageDialog(null, "删除成功", "提示", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "删除失败", "错误", JOptionPane.ERROR_MESSAGE);
}
```
希望这个代码可以帮助你解决问题。