这个程序在上一条、下一条以及更新这几个功能里多次调试总是不正确,不知哪里出的问题?
请各位帮忙解决一下,谢谢~~~import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;public class TestSQL{
private Frame fMain;
private Panel pDown,pCenter,pCenter1,pCenter2,pUp;
private Button bConn,bClose,bExit,bFirst,bLast,bNext,bPrevious,bUpdate,bInsert,bDel;
private Label lId,lName,lDate,lsx,lwl,lyy,lStateShow,lError;
private TextField tfId,tfName,tfDate,tfsx,tfwl,tfyy;
Connection conn = null;
Statement stat = null;
String sql = "SELECT * FROM score";
ResultSet rs = null;
public TestSQL(){ //事件
//连接
bConn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
// Connection conn = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:Test");
lStateShow.setText("已连接");
lError.setText("错误提示");
tfId.setText("");
tfName.setText("");
tfDate.setText("");
tfsx.setText("");
tfwl.setText("");
tfyy.setText("");
bFirst.setEnabled(true);
bPrevious.setEnabled(true);
bNext.setEnabled(true);
bLast.setEnabled(true);
bUpdate.setEnabled(true);
bInsert.setEnabled(true);
bDel.setEnabled(true);
bConn.setEnabled(false);
bClose.setEnabled(true);
}
catch (ClassNotFoundException cnfe){
cnfe.printStackTrace();
}
catch (SQLException sqle){
sqle.printStackTrace();
}
}
});
//关闭连接
bClose.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if (conn != null){
try{
conn.close();
lStateShow.setText("已断开");
bFirst.setEnabled(false);
bPrevious.setEnabled(false);
bNext.setEnabled(false);
bLast.setEnabled(false);
bUpdate.setEnabled(false);
bInsert.setEnabled(false);
bDel.setEnabled(false);
bConn.setEnabled(true);
bClose.setEnabled(false);
}
catch (SQLException sqle){
sqle.printStackTrace();
}
}
}
}); //退出
bExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
fMain.dispose();
System.exit(0);
}
});
fMain.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
fMain.dispose();
System.exit(0);
}
});

//首记录
bFirst.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try{
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stat.executeQuery(sql);
if (rs.first()){
fun();
}
else{
lError.setText("错误");
}
}
catch (SQLException sqle){
sqle.printStackTrace();
lError.setText("错误");
}
}
}); //尾记录
bLast.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try{
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stat.executeQuery(sql);
if (rs.last()){
fun();
}
else{
lError.setText("错误");
}
}
catch (SQLException sqle){
sqle.printStackTrace();
lError.setText("错误");
}
}
}); //上一条
bPrevious.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try{
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stat.executeQuery(sql);
if (rs.previous()){
System.out.println("true");
fun();
}
else{
lError.setText("无记录");
System.out.println("false");
}
}
catch (SQLException sqle){
sqle.printStackTrace();
lError.setText("错误");
}
}
}); //下一条
bNext.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try{
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stat.executeQuery(sql);
if (rs.next()){
System.out.println("true");
fun();
}
else{
System.out.println("false");
lError.setText("无记录");
}
}
catch (SQLException sqle){
sqle.printStackTrace();
lError.setText("错误");
}
}
}); //更新
bUpdate.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
try{
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stat.executeQuery(sql);
rs.updateInt("id",Integer.parseInt(lId.getText()));
rs.updateString("name",lName.getText());
rs.updateDate("birthday",java.sql.Date.valueOf(lDate.getText()));
rs.updateInt("sx",Integer.parseInt(lsx.getText()));
rs.updateInt("wl",Integer.parseInt(lwl.getText()));
rs.updateInt("yy",Integer.parseInt(lyy.getText()));
rs.updateRow();
}
catch (SQLException sqle){
sqle.printStackTrace();
}
}
});
} //提取记录
public void fun(){
try{
String id = rs.getString("Id");
tfId.setText(id); String name = rs.getString("name");
tfName.setText(name); Date birthday = rs.getDate("birthday");
Calendar ca = Calendar.getInstance();
ca.setTime(birthday);
int year = ca.get(Calendar.YEAR);
int month = ca.get(Calendar.MONTH) + 1;
int day = ca.get(Calendar.DATE);
tfDate.setText(String.valueOf(year) + "-" + String.valueOf(month) + "-"  + String.valueOf(month)); String sx = rs.getString("sx");
tfsx.setText(sx); String wl = rs.getString("wl");
tfwl.setText(wl); String yy = rs.getString("yy");
tfyy.setText(yy);
}
catch (SQLException sqle){
sqle.printStackTrace();
}
}

public static void main(String[] args){
TestSQL ts = new TestSQL();
}
}

解决方案 »

  1.   

    请把Exception和错误提示贴出来看看,代码太长了,实在没心思看啊
      

  2.   

    调试时,没错误.
    但在运行时的结果不对.
    主要在上一条、下一条以及更新这几个按钮功能实现不对。 //上一条
    bPrevious.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
    try{
    stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stat.executeQuery(sql);
    if (rs.previous()){
    System.out.println("true");
    fun(rs);
    }
    else{
    lError.setText("无记录");
    System.out.println("false");
    }
    }
    catch (SQLException sqle){
    sqle.printStackTrace();
    lError.setText("错误");
    }
    }
    }); //下一条
    bNext.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
    try{
    stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stat.executeQuery(sql);
    if (rs.next()){
    System.out.println("true");
    fun(rs);
    }
    else{
    System.out.println("false");
    lError.setText("无记录");
    }
    }
    catch (SQLException sqle){
    sqle.printStackTrace();
    lError.setText("错误");
    }
    }
    }); //更新
    bUpdate.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
    try{
    stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stat.executeQuery(sql);
    rs.updateInt("id",Integer.parseInt(lId.getText()));
    rs.updateString("name",lName.getText());
    rs.updateDate("birthday",java.sql.Date.valueOf(lDate.getText()));
    rs.updateInt("sx",Integer.parseInt(lsx.getText()));
    rs.updateInt("wl",Integer.parseInt(lwl.getText()));
    rs.updateInt("yy",Integer.parseInt(lyy.getText()));
    rs.updateRow();
    }
    catch (SQLException sqle){
    sqle.printStackTrace();
    }
    }
    });
    } //提取记录
    public void fun(ResultSet rs){
    try{
    String id = rs.getString("Id");
    tfId.setText(id); String name = rs.getString("name");
    tfName.setText(name); Date birthday = rs.getDate("birthday");
    Calendar ca = Calendar.getInstance();
    ca.setTime(birthday);
    int year = ca.get(Calendar.YEAR);
    int month = ca.get(Calendar.MONTH) + 1;
    int day = ca.get(Calendar.DATE);
    tfDate.setText(String.valueOf(year) + "-" + String.valueOf(month) + "-"  + String.valueOf(month)); String sx = rs.getString("sx");
    tfsx.setText(sx); String wl = rs.getString("wl");
    tfwl.setText(wl); String yy = rs.getString("yy");
    tfyy.setText(yy);
    }
    catch (SQLException sqle){
    sqle.printStackTrace();
    }
    }