gpt4 book ai didi

java - 如何删除表模型以及我的数据库中的多个数据/行

转载 作者:行者123 更新时间:2023-11-29 23:08:09 25 4
gpt4 key购买 nike

我这里有一个代码,当我选择一行并点击按钮时,它只删除 1 行。

    int row = tblRecords.getSelectedRow(); 
DefaultTableModel model= (DefaultTableModel)tblRecords.getModel();
selected = model.getValueAt(row, 0).toString();
selected2 = model.getValueAt(row, 1).toString();

if(row>=0)
{
int confirm = JOptionPane.showConfirmDialog(null, "Do you want to remove this Item?", "Confirm",2);
if(confirm==0)
{
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String from = df.format(txtfrom.getDate());
String to = df.format(txtto.getDate());
model.removeRow(row);
core.removeRec(selected,selected2);
tblCompute.setModel(core.lateTotal(from,to));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "error");
}
}
}

这是我用来在数据库中删除的函数,但只能删除 1 行

public void removeRec(String name, String date) throws Exception
{
Connect();
int i = st.executeUpdate("Delete from tbl_temp where holderName = '"+name+"' AND IODate='"+date+"'");
}

谢谢!

最佳答案

首先你需要设置 model.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) 。然后使用 int[] selectedRows = table.getSelectedRows() 获取所选行的索引。为每一行循环调用删除过程。如果您认为表中会有很多删除,则可以重写删除查询以仅调用 sql:因为您正在检查值对(holder_name,io_date),所以没有直接的方法可以使用带有 in (..) 子句的准备好的语句,因此您可以像这样构造航类查询:

  StringBuilder b = new StringBuilder();
b.append("Delete from tbl_temp where ");
for (int i = 0; i < selectedRows.length; i++) {
int row = selectedRows[i];
String name = model.getValueAt(row, 0).toString();
String date = model.getValueAt(row, 1).toString();
b.append("(holderName = '" +name+"' AND IODate='"+date+"')");
if (i < selectedRows.length - 1) {
b.append(" OR "); //omit the last OR
}
}
st.executeUpdate(b.toString());

关于java - 如何删除表模型以及我的数据库中的多个数据/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205701/

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