<% 
    ConnAccess con=new ConnAccess();
    ResultSet rs=con.getRs("SELECT * FROM class ");
   
    if(rs.next()){
    String aa=rs.getString(2);
   
  
    
   String  sql="SELECT * FROM news where class='"+aa+"'";
    
   ResultSet rsclass=con.getRs(sql);
   if(rsclass.next()){
        out.print(rsclass.getString("title"));
        } 
  
  }%>
出现 [Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 'class='test' 中。
 
test 为rs.getString(2)的值
 如果 String aa="test"就可以还有有一个这样的情况
我在登陆成功页面  {power=rs.getString("power")
session.setAtrribute("name",power)然后另一个页面
String strpower=(String)session.getAttribute("power");
ResultSet rs=selectdata.getRs("SELECT * FROM class1 WHERE power='"+strpower+"'");
出现同样的错误但是 如果我在登陆成功页面session.setAtrribute("name","power")
就不会有这样的错误 
帮忙看下

解决方案 »

  1.   

    1. String aa=rs.getString(2);         //用这两个分别测试看2. String aa=(rs.getString(2)).trim(); //用这两个分别测试看
    //用下面这个测试一下
     if("test".equals(aa))
       {
        out.println("equals test");
    }
     else 
        out.println("aa"+aa);
      

  2.   

    谢谢 真是高手  一语而破 我搞了好几天  
    我测试了下  
    输出为不相等 
    但是 虽然用你给我的方法解决了 但是我还是不太明白
    trim()函数是祛除空格..
    难道我从数据库取出来的数据有空格??
      

  3.   

    >>难道我从数据库取出来的数据有空格??
    你的数据类型是char还是varchar?
    如果是char的话,数据后面就会有空格。
      

  4.   

    是char  
    这个哪里有说明的啊