我在写一个登陆验证的时候这么写的:
连接数据库语句省去:
String sql="select * from login_tab where username="+username;
System.out.println(sql);

ResultSet rs = stmt.executeQuery(sql);
//.............

LoginVO lv = new LoginVO(); if(rs.next()){
lv.setId(rs.getInt("id"));
lv.setUsername(rs.getString("username"));
lv.setPassword(rs.getString("password"));
lv.setPoint(rs.getString("point"));
}
stmt.close();
conn.close();

return lv;数据库中有这个username字段:
而我在运行的时候提示这样的错误:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]?? 'uername' ???
在用整形的的变量做查询条件的时候这样写没有错:
String sql="select * from login_tab where username="+username;
ResultSet rs = stmt.executeQuery(sql);
我不知道String 行的直接用加号连接是否可以,如果可以那么错误处在那里,不可以该怎么写.

解决方案 »

  1.   

    String sql="select * from login_tab where username='"+username"'";加上单引号看看
      

  2.   

    还是不行啊,这样写直接Eclipse直接就报错误了!
      

  3.   

    试试String sql="select * from login_tab where login_tab.username="+username;
    再不行就单步调试
      

  4.   

    你用Eclipse的DEBUG一下,stepinto一步一试试,看看吧,我觉得你的语句没有错,可能其它地方错了
      

  5.   

    String sql="select * from login_tab where username='"+username+"'";少了个加号
      

  6.   


    String sql="select * from login_tab where username='"+username+"'";
    或者用预处理
      

  7.   

    String sql="select * from login_tab where username='" + username + "'";
      

  8.   

    明显是少了单引号啊
    killme2008的就是正解啊