姓名是char的话你是不是应该加上单引号?Select * from 黑名单 where 姓名 like '%王五%'当然如果SQL Server不是这样的话就当我没说。I hate M$

解决方案 »

  1.   

    "在SQL Server的查询分析器内却能够返回符合条件的行"
    说明你的sql语句是正确的"没有返回任何符合条件的行"
    只能说明你数据库操作代码不正确
    改正:
    Statement  stmt=conn.createStatement();  
    String  sql="select  *  from  dbname";  
    ResultSet  rs=stmt.executeQuery(sql);  
      

  2.   

    我不是让你看我的sql语句,而是看结构
    PreparedStatement pstmt=con.prepareStatement("Select * from 黑名单 where 姓名 like ?");
    这种写法是不正确的
      

  3.   

    "在SQL Server的查询分析器内却能够返回符合条件的行"
    说明你的sql语句是正确的
      

  4.   

    在SQL ANALYZER上能执行是因为将%看成是模糊查询的首代码,而用"%name%"传入,则寻找的可能是一个字符串,建议最好不要用JDBC-ODBC桥,我以前用它出现了许多莫名其妙的问题.
    还有该成用stmt.executeQuery(sql);试试.
      

  5.   

    我已经找到原因了。
    我使用了微软提供的SQLServer Driver for JDBC以后,问题解决了。
    开始的时候我用的是JDBC-ODBC桥。