gpt4 book ai didi

java - 如何添加 Access 中的所有数据

转载 作者:行者123 更新时间:2023-12-02 05:14:36 24 4
gpt4 key购买 nike

我想在单击“添加”按钮时添加 MS Access 数据库表中的所有数据。但是当我单击添加按钮时,它只显示表中的第一条记录。请任何人都可以帮助我如何解决这个问题。当我单击“添加”按钮时,它工作正常,没有显示任何错误,但它只在 JTable 中显示一条记录,我想显示 MS Access 数据库中的所有记录。

  import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import java.sql.*;

public class JTableRow {

public static void main(String[] args){

// create JFrame and JTable
JFrame frame = new JFrame();
final JTable table = new JTable();


Object[] columns = {"Id","Doctor Name","Specialization","Visit Day"};
final DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columns);


table.setModel(model);


table.setBackground(Color.LIGHT_GRAY);
table.setForeground(Color.black);
Font font = new Font("",1,22);
table.setFont(font);
table.setRowHeight(30);





JButton btnAdd = new JButton("Add");

btnAdd.setBounds(150, 220, 100, 25);


// create JScrollPane
JScrollPane pane = new JScrollPane(table);
pane.setBounds(0, 0, 880, 200);

frame.setLayout(null);

frame.add(pane);


frame.add(btnAdd);


final Object[] row = new Object[4];

btnAdd.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent e) {


try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:employeedsn";
Connection con=DriverManager.getConnection(url);
Statement s = con.createStatement();

String st = "select * from doctors";
s.execute(st);
ResultSet rs = s.getResultSet();
while((rs!=null) && (rs.next())){

row[0] = rs.getString("id");;
row[1] = rs.getString("Dname");;
row[2] = rs.getString("spec");
row[3] = rs.getString("visitDay");

// add a row to the model

model.addRow(row);

break;
}
con.close();
}
catch(Exception sqlEx) {
System.out.println(sqlEx);

}

}
});

frame.setSize(900,400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}

}

最佳答案

在 model.addRow(row) 之后有一个break语句:

                // add row to the model

model.addRow(row);

break; // breaks out of the while() { } loop.

Break 将退出当前代码块(如果嵌套在多个 fors/whiles/dos 中,则退出更多代码块)。这意味着它在执行一次后完全停止并脱离 while 循环。去掉断线;行并允许其运行多次

关于java - 如何添加 Access 中的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56305977/

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