问题遇到的现象和发生背景
SQL SERVER数据库中包含了车辆信息,现在想要输入车牌号进行模糊查询,然后将查询结果显示在页面上
问题相关代码,请勿粘贴截图
查询页面:
车辆信息查询
<input type="text" />
|
---|
查询
|
<!-- 在网页的<head>中增加这句话,可以让网页的宽度自动适应手机屏幕的宽度。 -->
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<!-- 指定css的位置 -->
<link href="css/style.css" rel="stylesheet" type="text/css" />
<!-- 接收输入的车牌号,并在数据库中查询 -->
<title>查询结果</title>
<%
//接收数据
String CarN=request.getParameter("CarN");
//编码转换
CarN = new String(CarN.getBytes("ISO-8859-1"),"UTF-8");
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://192.168.1.2:1433;DatabaseName=CAR";
String username = "sa";
String password = "1234567";
Connection conn=DriverManager.getConnection(url, username, password);
//成功连接数据库则conn不为空
if(conn !=null){
Statement stmt = null;
ResultSet rs = null;
//精确查询
//String sql = "SELECT * FROM CAR.dbo.CarInfo WHERE CarNum = '"+CarN+"'";
//模糊查询
String sql = "SELECT * FROM CAR.dbo.CarInfo WHERE CarNum LIKE '%"+CarN+"%'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if(rs.next()) {
while (rs.next()) {
%>
<div id="rs_title">
<p>车牌号 <% out.print(rs.getString("CarNum")); %> 的信息如下</p>
</div>
<div id="rs_content">
<form>
<table class="s_table">
<tr id="s_tr">
<!-- 这里第一行要跨行合并单元格 -->
<th id="s_th">住址:<% out.print(rs.getInt("LouHao")); %>号楼<% out.print(rs.getInt("DanYuan")); %>单元<% out.print(rs.getInt("MenPai")); %>号</th>
</tr>
<tr id="s_tr">
<th id="s_th">房主:<% out.print(rs.getString("Name")); %></th>
<th id="s_th">电话:<a href="tel:<% out.print(rs.getString("Phone")); %>"><% out.print(rs.getString("Phone")); %></a></th>
</tr>
<tr id="s_tr">
<th id="s_th">车主:<% out.print(rs.getString("XSZName")); %></th>
<th id="s_th">电话:<a href="tel:<% out.print(rs.getString("CarPhone")); %>"><% out.print(rs.getString("CarPhone")); %></a></th>
</tr>
</table>
<div>
<p id="s_zhu">注:未录入系统的部分会显示为“ null ”。</p>
</div>
</form>
</div>
<%
}
rs.close();
stmt.close();
}else {
%>
<div align="center">
<img id="bg_noinfo" src="image/noinfo.png" />
<p id="text_noinfo"><% out.print("未查询到相关车辆信息!");%></p>
</div>
<%
}
}
else{
%>
<div>
<p><% out.print("数据库连接异常,请联系管理员!"); %></p>
</div>
<%
}
}catch (Exception e){
%>
<div>
<p><% out.print("数据库连接失败!"); %></p>
</div>
<%
}
%>
<div id="back_row" align="center">
<button id="back" type="button" onclick="window.loca“”tion.href='chaxun.html'">返回</button>
</div>
运行结果及报错内容
这样写好之后输入准确的车牌号什么也查询不到,也不输出程序中的out.print信息,但是输入一两位数的话就可以正常查询到。然而输入错误的车牌号后可以输出“未查询到相关车辆信息”
然后我尝试去掉if(rs.next())语句,这个时候就模糊查询正常了,但是输入错误的车牌的话却不能提示“未查询到相关车辆信息”
是不是我的代码写的有问题?