当我选择一行并按“删除”按钮时:
在摆动界面中,选定的行将被删除(如预期的那样)。但
在实际的数据库中,无论选择的行是什么(都不期望),最后一行都将被删除。无论实际选择的行是什么,被删除的行始终是数据库中的最后一行。我的代码中没有错误,也没有抛出异常。它的工作没有任何中断。
我实际上在代码中添加了必要的内容:
Statement sqlStatement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
并添加“删除”按钮以删除选定的行:
JButton removeEmployee = new JButton("Remove Selected");
removeEmployee.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dTableModel.removeRow(table.getSelectedRow());
try
{
resultSet.absolute(table.getSelectedRow());
resultSet.deleteRow();
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
});
谢谢@Germann …
我已经解决了,我将提供解决方案,以便其他人可以从中获得帮助。
正确,它resultSet.absolute(...);
返回布尔值,但是它也将光标移动到其参数中的指定行resultSet.absolute(table.getSelectedRow());
。那么问题是什么。
问题是:dTableModel.removeRow(table.getSelectedRow());
不能在该行 之前调用,
resultSet.absolute(table.getSelectedRow());
因为(第一个)它删除了选定的行,并且因为它被删除了,所以第二个方法没有选择任何内容,因此table.getSelectedRow()
返回-1。然后按照文档中的说明absolute(-1)
将光标移动到最后一行,这将删除基础数据库中的最后一行。
所以解决方案是颠倒那些行的顺序,我更喜欢在之后 resultSet.deleteRow();
JButton removeEmployee = new JButton("Remove Selected");
removeEmployee.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{/* here I added +1 because it moves the row to the selected row -1
I don't know why. But it now works well */
resultSet.absolute(table.getSelectedRow()+1);
resultSet.deleteRow();
dTableModel.removeRow(table.getSelectedRow());
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
});
我正在使用AbstractTableModel,并试图从JTable中删除所选行。 我能够从表中选择特定的行;但当我单击delete按钮时,所选行变为空(即所选行中的所有数据变为空),最后一行将从JTable中删除。 我认为可能是fireTableRowsDeleted()不起作用。请在这方面帮助我。我已经搜索了stackoverflow,但找不到解决方案。 请在下面找到我的代码。 //删除按钮侦
问题内容: 我需要从数据库中删除除前两个选定日期以外的所有日期: 我想在一个查询中删除除前两个日期以外的所有日期。 问题答案:
我正试图从数据库中删除一行,但得到以下错误
我是新来的希望你们能帮我。。。 我是java编程的初学者,我想我对这个问题有点不知所措。 我的程序运行得很好,除了一个让我恼火的小细节。我有一个JTable,第一列有一个按钮,可以从表中删除这一行。它工作得很好,除了当我试图删除表的最后一行时,按钮停留在那里,然后表冻结,我无法删除任何行,因为我收到了一个“越界异常”。但是,当我使用命令表时。getRowCount()); 在删除该行之前和之后,表
问题内容: 我需要从数据库中删除重复的行。我可以用简单的SQL查询吗?如果没有,请告诉我一些快速算法。 例子: 我需要删除ID为2的行(或3,无论如何,它们是相等的,但不能同时都是)。谢谢你的帮助 问题答案: 正如评论中指出的那样,如果连续出现三遍,则此操作将无效。您可以重复运行此(繁重的)查询,直到停止删除内容为止,或者等待更好的答案…
问题内容: 我有以下数组。 我想删除最后一个元素,即2。 我用过,但不会删除值。 问题答案: 使用拼接(索引,多个)