Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么要让JTable从数据库中获取数据并删除第一行?_Java_Mysql_Swing - Fatal编程技术网

Java 为什么要让JTable从数据库中获取数据并删除第一行?

Java 为什么要让JTable从数据库中获取数据并删除第一行?,java,mysql,swing,Java,Mysql,Swing,我正试图使一个表中的数据,我使条件删除从。。。到数据返回一行,可能是删除了一行?我的代码: JScrollPane scrollPane_9 = new JScrollPane(); scrollPane_9.setBounds(10, 105, 1396, 524); month.add(scrollPane_9); DefaultTableModel tableModel = new DefaultTableModel(); table_10 = new JTable(tableModel)

我正试图使一个表中的数据,我使条件删除从。。。到数据返回一行,可能是删除了一行?我的代码:

JScrollPane scrollPane_9 = new JScrollPane();
scrollPane_9.setBounds(10, 105, 1396, 524);
month.add(scrollPane_9);
DefaultTableModel tableModel = new DefaultTableModel();
table_10 = new JTable(tableModel);
scrollPane_9.setViewportView(table_10);
tableModel.addColumn("INVOICE ID ");
tableModel.addColumn("DATE");
tableModel.addColumn("CASH");
tableModel.addColumn("MADA");
tableModel.addColumn("COPON PRISE");
tableModel.addColumn("COPONE NAME");
tableModel.addColumn("SELMAN");
tableModel.addColumn("DESCRIPTION");

String sqlQ = "SELECT `invoiceid`,`date`,`cash`,`payme`, `coponpri`, `copon`,`selman`,`desc` FROM `daay` where DATE between DATE(?) and DATE(?)";
                PreparedStatement pstmt5 = con.prepareStatement(sqlQ);

pstmt5.setDate(1, date8);
pstmt5.setDate(2,date9);
            

ResultSet rs4 =  pstmt5.executeQuery();

if (rs4.next() == false)
{
    JOptionPane.showMessageDialog(null, "لا يوجد مبيعات في هذا الشهر");
}
else 
{
    tableModel.addRow(new Object[]{"","","","","","","",""});
    while(rs4.next()){
        tableModel.addRow(new Object[]{rs4.getInt(1), rs4.getDate(2),rs4.getInt(3),rs4.getInt(4),rs4.getInt(5),rs4.getString(6),rs4.getString(7),rs4.getString(8)});
    } 
}
这些数据对我来说不那么稀薄

您读取循环外的第一行,因此它永远不会添加到模型中

你的逻辑应该是这样的:

tableModel.addRow(new Object[]{"","","","","","","",""});
while(rs4.next())
{
    tableModel.addRow(new Object[]{rs4.getInt(1), rs4.getDate(2), rs4.getInt(3), rs4.getInt(4), rs4.getInt(5), rs4.getString(6), rs4.getString(7), rs4.getString(8)});
} 

if (tableModel.getRowCount() == 1)
{
     JOptionPane.showMessageDialog(null, "لا يوجد مبيعات في هذا الشهر");
}
也就是说,在遍历ResultSet之后,检查添加到模型中的行数

或者,也许你可以使用:

//if (rs4.next() == false)
if (rs4.isLast())

我不是SQL专家,所以我不确定空结果集会返回什么。

对于接下来两次调用的第一条记录。如果rs4.next==false。。。接下来{非常感谢你,它很有效
//if (rs4.next() == false)
if (rs4.isLast())