相关的代码如下,无关的我就不贴上来了。主要就是点击Delete按钮能够删除选中的行,并在数据库中删除对应数据。可是为什么在deleteData方法调用时总是出现 java.sql.SQLException: After end of result set. Can not call deleteRow().
这个错误 public AddToMysqlByTable(){
//链接数据库
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loaded");
connection=DriverManager.getConnection(
"jdbc:mysql://localhost/test","root","8824974");
System.out.println("Database connected");
statement=connection.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
resultSet=statement.executeQuery("select * from testmysql");
}
catch(Exception e){
System.out.println("链接"+e.toString());
}
jbtDelete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//从数据库删除选定行数据
deleteDate();
//删除行
deleteRow();
}
});
}
//删除数据库数据
private void deleteDate(){
try{
resultSet.deleteRow();
}
catch(Exception e){
System.out.println(e.toString());
}
}
这个错误 public AddToMysqlByTable(){
//链接数据库
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loaded");
connection=DriverManager.getConnection(
"jdbc:mysql://localhost/test","root","8824974");
System.out.println("Database connected");
statement=connection.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
resultSet=statement.executeQuery("select * from testmysql");
}
catch(Exception e){
System.out.println("链接"+e.toString());
}
jbtDelete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//从数据库删除选定行数据
deleteDate();
//删除行
deleteRow();
}
});
}
//删除数据库数据
private void deleteDate(){
try{
resultSet.deleteRow();
}
catch(Exception e){
System.out.println(e.toString());
}
}
try{
resultSet=statement.executeQuery("select * from testmysql");---添加这行
resultSet.deleteRow();
}
catch(Exception e){
System.out.println(e.toString());
}
}
在调用resultSet.deleteRow()之前,没有任何移动记录指针到指定行的代码?
在这一行前加System.out.println(resultSet.getRow());看看想要删的到底是不是你要删的行号