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”的了,当然没结果咯,祝你好运