我做了一个小的信息系统。其中一个删除界面有按钮:上一条,下一条,删除当前记录。当我删除完一条记录的时候再点上一条或者下一条的时候就会报错。错误如下。[Microsoft][ODBC Microsoft Access Driver]行中有错误
at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.updateRow(Unknown Source)
at com.SCYG$3.actionPerformed(SCYG.java:164)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
上一条的代码:
final JButton button_2 = new JButton();
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
rs.updateRow();
if(rs.previous()&&!rs.isBeforeFirst())
{
sfz.setText(rs.getString(1));
name.setText(rs.getString(2));
age.setText(rs.getString(3));
address.setText(rs.getString(4));
other.setText(rs.getString(5));

}
else
{
System.out.println("已经到了最开始处");
rs.next();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
});
button_2.setText("上一条");
button_2.setBounds(43, 199, 99, 23);
getContentPane().add(button_2);删除的代码:
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
rs.previous();
if(rs.next());
String sql2="delete from YG where YGid="+rs.getString(1);
System.out.println(sql2);
db.executeUpdate(sql2);
} catch (SQLException e1) {
e1.printStackTrace();
} }
});
button.setText("删除");
button.setBounds(313, 199, 60, 23);
getContentPane().add(button);数据库连接的类DBCon的代码:
package com;import java.sql.*;import javax.swing.JOptionPane;public class DBCon 
{
private Connection cnn=null;
private Statement  stmt=null;
private ResultSet  rst=null;
//获得Connection
public Connection getcon()
{
try
 {



// JOptionPane.showMessageDialog(null, abc);
        String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=db1.mdb";   
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn=DriverManager.getConnection(strurl);
        if(conn!=null)
         {
         System.out.println("连接成功!");
         return conn;
         }
        
        else
         {
         System.out.println("连接失败!");
         return null;
         }
        
      /*  Statement stmt=conn.createStatement();
        ResultSet rs=stmt.executeQuery("select * from test");
        if(rs.next())
        {
            //System.out.println(rs.getString("name"));
        }*/
 }catch(Exception e)
 {
 System.out.println("出现异常!!");
 return null;
 }
}

// 更新操作
public int executeUpdate(String sql){
int result=0;
try{
cnn=this.getcon();
stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
result=stmt.executeUpdate(sql);
cnn.commit();
}catch(Exception ex){
ex.printStackTrace();
}

return result;

}


//表是否已经存在
public boolean hasTable(String name){
boolean flag=false;

cnn=this.getcon();
try {
DatabaseMetaData dm=cnn.getMetaData();
rst=dm.getTables(null, null, name, null);
while(rst.next()){
flag=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

return flag;
}
//查询语句
public ResultSet executeQuery(String sql){
cnn=this.getcon();

try {
stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rst=stmt.executeQuery(sql);
cnn.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return rst;

}
public void close() {
    try {
      if (rst != null) {
        rst.close();
      }
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
    try {
      if (stmt != null) {
        stmt.close();
      }
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
    try {
      if (cnn != null) {
        cnn.close();
      }
    }
    catch (Exception e) {
      e.printStackTrace(System.err);
    }
  }


//
// public static void main(String[] args)
// {
// DBCon db=new DBCon();
// db.getcon();
// }
}