急:如何解决无效的游标状态?
strSQL="select * from ProductIn";
//如果名称的查询条件不为空
if(jTextFieldname.getText().trim().length()==0){}
else{
strSQL=strSQL+"where Name like '"+jTextFieldname.getText().trim()+"'";
}
rs=db.getResult(strSQL);
try{
//判断返回的结果集是否为空,若不为空显示记录
if(rs.equals(null)){
JOptionPane.showMessageDialog(null,"无入库信息!");
return;
}
else{
rs.next();
showResult();//显示当前记录
}
}
catch(SQLException ex){}
当ProductIn表中有记录时可正常执行,但是当无记录时就会提示“无效的游标状态”
请问应该怎么解决???
----------------解决方案--------------------------------------------------------
你只帖了一部份的代码进来
最好是把全部的代码帖出来
----------------解决方案--------------------------------------------------------
这基本就是这个功能的全部代码了,补充一下,我用的是sql server2000数据库~~
希望斑竹能帮我一下~~
----------------解决方案--------------------------------------------------------
db.getResult(strSQL);
是什么意思
你至少要把这个方法的实现给我们看一下啊
----------------解决方案--------------------------------------------------------
哦,就是几个jTextField调用getText()方法,读取数据库中的数据~~
----------------解决方案--------------------------------------------------------
那怎么会把它的值赋给一个rs呢
----------------解决方案--------------------------------------------------------
ResultSet rs;
String strurl="jdbc:odbc:ProductManager";
public DBManager(){}
//查询方法,返回查询结果集
public ResultSet getResult(String sql){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(strurl); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e){
System.out.println("getResult----"+e.toString());
return null;
}
看错了,现在把这个方法帖出来,刚才看成是showResult()方法去了~~
不好意思啊~~
----------------解决方案--------------------------------------------------------
斑竹啊~~
----------------解决方案--------------------------------------------------------
如果用rs.eof 和 rs.bof做判断 应该能解决吧
if(rs.eof=rs.bof){
//没有找到记录 记录集为空;
}
----------------解决方案--------------------------------------------------------