0
给定程序中的每件事情都是正确的,但是没有建立与数据库的连接。 可能的原因是什么?是否与驱动相关的问题。我想在没有DSN的情况下做到这一点。用于java中.accdb访问数据库的JDBC连接
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class FormAccess1 extends Frame implements ActionListener {
private static ResultSet rs;
Panel p1;
TextField t1, t2;
Button next;
public FormAccess1() {
super("Applicant Detail");
setLayout(new GridLayout(5, 1));
p1 = new Panel();
t1 = new TextField(10);
t2 = new TextField(10);
add(p1);
next = new Button("Next");
p1.add(new Label("book-id"));
p1.add(t1);
p1.add(new Label("book-title"));
p1.add(t2);
p1.add(next);
next.addActionListener(this);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == next) {
try {
rs.next();
} catch (Exception em) {
}
showRecord(rs);
}
}
public void showRecord(ResultSet rs) {
try {
t1.setText(rs.getString(1));
t2.setText(rs.getString(2));
} catch (Exception ex) {
}
}
public static void main(String arg[]) {
FormAccess1 app = new FormAccess1();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.accdb)};DBQ=MyDatabase.accdb;DriverID=01";
Connection con = DriverManager.getConnection(database, "", "");
Statement state = con.createStatement();
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
rs.next();
app.showRecord(rs);
} catch (Exception ey) {
}
}
}
这是所有的代码吗?你永远不会初始化ResultSet。 – jtahlborn 2013-03-18 16:39:53
**从不**写一个空的'catch'块。把**至少**'e.printStackTrace()'在那里!你真的有这个问题**三次!** – 2013-03-18 16:41:10
除非你真的在那里添加这些行并看看它打印出来,你将不知道发生了什么。例外情况不仅告诉你有一个错误,他们还告诉你很多有关错误发生的位置和错误的信息。当然,除非你选择忽视它们。 – 2013-03-19 09:26:47