日期:2014-05-20  浏览次数:20672 次

求解惑!!!!
1. 请问SQLServer 2008里面的MSSQLServer引擎和SQLServer引擎可以同时启动吗?? 

  昨天遇到一变态错误,不知道什么原因,请看如下代码:
package com.servlet;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
public class LoginCl extends HttpServlet {
  public void doGet(HttpServletRequest req,HttpServletResponse res){
   
  Connection conn=null;
  Statement stm=null;
  ResultSet rs=null;
  try {  
  //------加载JDBC-ODBC驱动------
  //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  //------得到连接对象------
  //String connStr="jdbc:odbc:test";
  String connStr="jdbc:sqlserver://localhost:1433;DatabaseName=test1";
  conn=DriverManager.getConnection(connStr,"sa","08062129");
   
  //接受用户名和密码
  String user=req.getParameter("username");
  String pwd=req.getParameter("passwd");
   
  //创建statement
  stm=conn.createStatement();
  rs=stm.executeQuery("select top 1 passwd from tb_users where username='"+user+"'");
   
  //说明用户是存在的
  if(rs.next()){
  String dbPasswd=rs.getString(1);
  System.out.print(dbPasswd); //得到的值是admin
  System.out.print(pwd);//得到的值是admin?
  boolean b=dbPasswd.equals(pwd);?
  System.out.print(b);//得到的却是false

//这段代码的变态就是我必须写 " !dbPasswd.equals(pwd)? " 才会运行得到正常的结果,不知道是不是SQLServer 2008的原因??? 求解惑!
  if(dbPasswd.equals(pwd)){  
  //将验证成功的信息写入session,并得到session
  HttpSession hs=req.getSession(true);
  //修改session存在的时间
  hs.setMaxInactiveInterval(20);
  hs.setAttribute("pass","ok");
  res.sendRedirect("welcome?uname="+user+"&passwd="+pwd);
  }else{
  res.sendRedirect("login");
  }
  }
   
  }
  catch (Exception ex) {
  ex.printStackTrace();
  }finally{
  try {
  if(rs!=null){
  rs.close();  
  }
  if(stm!=null){
  stm.close();  
  }
  if(conn!=null){
  conn.close();  
  }
  }
  catch (Exception ex) {
  ex.printStackTrace();
  }
   
  }
  }
  public void doPost(HttpServletRequest req,HttpServletResponse res){
  this.doGet(req,res);
  }
}?


------解决方案--------------------
粗略看了下,这跟数据库应该无多大关系
请楼主认真检查两个值,System.out.print(pwd) 时pwd有空格与无空格在控制台打印是一个效果的,我估计是那个字符含有些打印出来但看不见的,比如空格