日期:2014-05-18  浏览次数:20615 次

SQL异常~~~(急)
新人,请高手指点指点

代码如下:

try     {   Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");   }
catch(   ClassNotFoundException   e)   {   out.print( "类找不到! ");     }
try
  {String   loginname=request.getParameter( "loginname ");
    String   loginpasswd=request.getParameter( "loginpasswd ");
    if((loginname.compareTo( "jmwxs "))==0   &
  (loginpasswd.compareTo( "jmwxs "))==0)   {
%>
      <jsp:forward   page= "login_admin.jsp "> </jsp:forward>
<%}
    else{
    Connection   con;
    Statement   sql;
    ResultSet   rs;
    con=DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;   DatabaseName=project ", " ", " ");  
    sql=con.createStatement();
    rs=sql.executeQuery( "select   usename,usepasswd   from   account   where   usename= ' "+loginname+ " 'and   usepasswd= ' "+loginpasswd+ " ' ");      
    if(rs.next()){
%>
      <jsp:forward   page= "login_use.jsp "> </jsp:forward>
<%}
      else{out.print( "抱歉!账户或密码错误 ");}
    }
}
catch(SQLException   e1)
  {   out.print( "SQL异常! ");   }
%>

不知道为什么老是说:SQL异常!
我用JDBC-ODBC是可以的,一点问题都没有,上面的代码不知是不是在那搞错了,
虽然我可以用JDBC-ODBC做下去,但我想真正学好JSP啊,所以,不懂弄到懂,

先谢谢高手。

------解决方案--------------------
必须打上sp3或sp4 sql server 2000补丁
------解决方案--------------------
把异常信息贴出来
------解决方案--------------------
String loginname=request.getParameter( "loginname ");
String loginpasswd=request.getParameter( "loginpasswd ");

这两个控件名都相对应么?你也没做不为空的判断 如果为空的话 也就异常!

------解决方案--------------------
String loginname=request.getParameter( "loginname ")!=null?request.getParameter( "loginname "): " ";
String loginpasswd=request.getParameter( "loginpasswd ")!=null?request.getParameter( "loginpasswd "): " ";
使用后台输出找异常或使用段点调试。


------解决方案--------------------
你把捕获异常的try catch 这个去掉
然后运行一遍,应该会出现报错信息 这样更容易查找一些
------解决方案--------------------
你安装混合模式的时候SQL SERVER就会提示你设不设置sa用户的密码,sa也就是system admin的意思,,你没设密码所以用户为sa 密码为空,楼主努力!..
------解决方案--------------------
安全设置里面都可以设置用户权限密码的
------解决方案--------------------
导入SQL SERVER的jar包了吗