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

jsp连接ms sql server 数据库 不显示表单提交的字符查询结果
小弟是十足菜鸟,问题简单抽象如下:
  做一个有汉字和对应比划数的数据库,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

但通过表单提交“我“字,就什么都不显示了。




------解决方案--------------------
String sql="SELECT * FROM name.[dbo].[TABLE1] WHERE 汉字 = ' "+text+" ' ";
少写了个加号,不好意思!
------解决方案--------------------
的确楼上正解啊,你那样写相当于在数据库中查找汉字值为“text”的了,当然没结果咯,祝你好运