禽流感的鸡能吃吗:JSP网页中SQL语句的问题,请多多提点,不胜感激~

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 20:53:16
在做数据库查询时碰到了问题。
数据库中的关键字no是自动编码,长整型。
我的代码为
String s=request.getParameter("no");
int no= Integer.parseInt(s);
String sql="select * from basicDB where no="+no;
后来测试时选择了一个数据库中存在的一条no=4的纪录,
经out.print验证int no的值已经为4了,但是结果集rs却是空的!!
什么都没有查到。
后来试着用其他字段查询检查数据库联接,没有问题,也能查出结果。
又试着改写语句:
String sql="select * from basicDB where no=4";
结果还是什么都查不到,究竟是为什么呢?
求求高手帮帮忙!!
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<body>
<jsp:useBean id="RegisterBean" scope="page" class="opendb.opendb1" />
<%
String s=request.getParameter("no");
int no= Integer.parseInt(s);
String sql="select * from basicDB where no='5'";
ResultSet rs=RegisterBean.executeQuery(sql);
out.print(no);
if(rs.next())
{
%>
<%= rs.getString(1)%>
<br>
<%= rs.getString(2)%>
<%
}
else
{
%>
<span class="style5">您现在的访问不合法,请返回重试!</span>
<%
}
rs.close();
%>
</body>
</html>

我觉得有两个原因:
1。可能你在传递时,数字是否带空格
2。有可能该表的字段名或表名和关键字重了

这句代码要这样写
String sql="select * from basicDB where no='"+ no +"';

后面的代码我觉得要这样写
if(rs.next()){
int num = rs.getint(no);
out.print(num);
}
这样写在结果集中才会有数据

把后边的代码也贴上啊!

看代码比较好解决

你这么说我们也不太清楚

少做修改::

如下::

String sql="select * from basicDB where no=5";
ResultSet rs=RegisterBean.executeQuery(sql);
out.print(no);
if(rs.next())
{
rs.first(); //注意这里!!!
%>
<%= rs.getInt(1)%> //还有这里!!!
<br>
<%= rs.getString(2)%>
<%
}

仔细看一看,数据库中这个"4"前后有没有空格,或者其它什么非法字符。

你用System.out.println()直接打印出sql的查询语句,然后把这个语句放到sqlserver的查询分析器或者其他工具中,运行,看看有结果吗。如果有结果说明sql是正确的;没有结果的话,先查数据库连接是否正常,然后看看得到数据集的语句是否写的正确。

最好把整个代码都弄上来,才能分析错误。

可能是关键字的问题