小弟是十足菜鸟,问题简单抽象如下:
  做一个有汉字和对应比划数的数据库,ms sql server的。用jsp连接成功,可顺利查询。但当让他接收表单提交的字符,以
在数据库中返回比划数时,网页上什么都不显示 。
 
  有否热心的兄弟,高手指点一下。代码:
<%@page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<HTML>
<BODY><FONT size=4>     
<p>您输入的汉字:
<%      
                        request.setCharacterEncoding("gb2312");     //为了避免乱码作的处理
String text =request.getParameter("word");  // word 是另一网页提交的字符变量
                        
%>

  //以下是数据库驱动:
<%  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();   String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=name";   String user="sa";   String password="";   Connection conn= DriverManager.getConnection(url,user,password);   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
  String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 = 'text' ";   ResultSet rs=stmt.executeQuery(sql); 
  
  while(rs.next())                                          {
       %>      <%=rs.getString("汉字")%>
<%=rs.getString("对应比划数")%>
       
        
  
<%  }
  rs.close();   stmt.close();   conn.close(); %> 

</FONT>
</BODY>
</HTML>
我奇怪的是:如果我写成“ String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 = '我' "; 
就会正确的输出:
                    汉字:   我
                    笔划数: 7但通过表单提交“我“字,就什么都不显示了。

解决方案 »

  1.   

    sql语句写错了,String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 =  'text ' ";  你这样写是错误的,应该写成
    String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 =  '"+text" ' "; 
    你那样写是在数据库中查找汉字: text当然没有结果了,你没有把变量text的值赋到查询语句里。
      

  2.   

    String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 = ' "+text"  ' ";  
    再提醒一下注意单双引号哦!
      

  3.   

    String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 =  ' "+text+"   ' ";   
    少写了个加号,不好意思!
      

  4.   

    的确楼上正解啊,你那样写相当于在数据库中查找汉字值为“text”的了,当然没结果咯,祝你好运
      

  5.   

    感谢HITCCBoy ,同样感谢楼上。不过偶刚照上边的试过了,结果未变。晕,又失望了。
    还请再帮想想