不行啊,我这里的name是注册页面传递过来的参数赋值过来的,不是查询一个数据库中Name为name的一个记录,如果是这种情况,应该可以这样吧:
"WHERE Name='name'"
但是,这个name是一个变量,而不是一个字符串常量:
String name=request.getParameter("userName");

解决方案 »

  1.   

    "WHERE Name='"+name+"'");就是变量,不是常量
      

  2.   

    ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
    "WHERE Name='"+(new String(request.getParameter("userName").getBytes("ISO8859_1"),"gb2312"))+"'");
    顺便做个中文编码,request取得的数据需要编码
      

  3.   

    如果不要编码,则:
    ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
    "WHERE Name='"+request.getParameter("userName")+"'");
      

  4.   

    收到了,非常感谢!
    顺便请高手们讲一讲为什么要编码,我按如下写法,好像也是正确地显示啊:
    s.executeQuery("SELECT userName,userPassword,Sex,WorkPlace "+
                   "FROM user "+
                   "WHERE userName='"+name+"'"+
                   "AND userPassword='"+password+"'");
    好像和遍码没有什么管啊