<%
Connection con;
Statement sql;
ResultSet rs,rs1;
int param;
String param2;
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e) {}
try{con=DriverManager.getConnection("jdbc:odbc:student","","");
sql=con.createStatement();
rs=sql.executeQuery("select * from student_credit_record order by student_id");
while(rs.next())
{
out.print("<tr>");
param=rs.getInt("student_id");
param2=rs.getString(2);
out.print("<td><font color=#990033><a href=stu_info.jsp?id="+param+">"+param2+"</a></font></td>");
out.print("<td>"+param+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
//out.print("<td>"+rs.getString(6)+"</td>");
out.print("<td><font color=#990033>"+rs.getInt("credit_degree")+"</font></td>");
//out.print("<td>"+rs.getDate("student_intime")+"</td>");
try{ rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param);
while(rs1.next())
{
out.print("<td>"+rs1.getInt(1)+"</td>");
}
}
catch(SQLException e) {}
%>
<td><a href="stu_modify.jsp?id=<%=param%>&nid=<%=param2%>">修改</a>|<a href="stu_del.jsp?id=<%=param%>&nid=<%=param2%>">删除</a></td>
<%
out.print("</tr>");
}
con.close();
}
catch(SQLException e1) {}%>
为什么老是只读数据库中的第一条记录啊?
22 个解决方案
#1
count(*)是 计算记录条数的命令你把更改为*
#2
count(student_id)
#3
我要的就是选择数据记录的条数啊,难道这样不行吗
#4
以上两种方法都不行啊,怎么回事情啊
#5
哎,这里真的没有JSP高手吗?郁闷
#6
看了,好象没有错啊,
你库里面不会只有一条记录吧!!!
你库里面不会只有一条记录吧!!!
#7
不是,有好几条,不过老是只有显示第一条,真是郁闷
#8
指针没有移动啊
#9
在rs.next()的外面再做次循环呀,要不怎么能移动记录集呢?
#10
taleny(非常可乐) 还要怎么循环啊 ,不是已经有循环了吗
#11
你移动记录集的时候肯定要触发事件,就在这个事件的时候做循环。如果一开始页面就需要显示多条记录,一开始就做循环,如果是点击button移动记录集,就在这个时候做。
#12
try
{
for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
while(rs.next())
{
id[l]=rs.getString("id");
title[l]=rs.getString("title");
date[l]=rs.getString("date");
date2[l]=date[l].substring(0,10);
nod[l]=rs.getString("nod");
l=l+1;
}
}
catch(Exception e)
{
}
这是我自己网站的一段代码,页面要求显示16条记录。在rs.next()的外面有个for循环。
{
for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
while(rs.next())
{
id[l]=rs.getString("id");
title[l]=rs.getString("title");
date[l]=rs.getString("date");
date2[l]=date[l].substring(0,10);
nod[l]=rs.getString("nod");
l=l+1;
}
}
catch(Exception e)
{
}
这是我自己网站的一段代码,页面要求显示16条记录。在rs.next()的外面有个for循环。
#13
我是初学者啊, taleny(非常可乐) 那你的for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
这段代码什么意思啊 ,我还是不大懂你的意思哦
{rs.next();}
这段代码什么意思啊 ,我还是不大懂你的意思哦
#14
郁闷,讲了等于没讲
#15
你可以用游标啊,这样很容易解决的。
#16
不要在循环里面嵌查询。因为你的程序有很多漏洞。
建议写成一句sql语句这样就没有啥问题了
建议写成一句sql语句这样就没有啥问题了
#17
我是查询两个表里面的记录,先要查出一个表的字段,另一个表在根据这个字段去查,有好点的办法吗
#18
你的记录没有移动呀
在while循环里把指针指向下一条
在while循环里把指针指向下一条
#19
没移动???
#20
有两个while啊 ,每个不是都有.next()的吗 ,怎么还要移动
#21
还是没人知道真正的错误啊????
这样一段代码在我另一个网页当中就可以的,为什么这里就错了呢
这样一段代码在我另一个网页当中就可以的,为什么这里就错了呢
#22
sql=con.createStatement();
rs=sql.executeQuery("select * from student_credit_record order by student_id");
执行后产生的结果在
rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)
被覆盖了,所以只显示第一条
你可以在后面的rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)前面重新定义一个
sql2=con.createStatement();
rs1=sql2.executeQuery("select count(*) from bad_record where student_id="+param)
这样肯定就没问题了!!!
rs=sql.executeQuery("select * from student_credit_record order by student_id");
执行后产生的结果在
rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)
被覆盖了,所以只显示第一条
你可以在后面的rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)前面重新定义一个
sql2=con.createStatement();
rs1=sql2.executeQuery("select count(*) from bad_record where student_id="+param)
这样肯定就没问题了!!!
#1
count(*)是 计算记录条数的命令你把更改为*
#2
count(student_id)
#3
我要的就是选择数据记录的条数啊,难道这样不行吗
#4
以上两种方法都不行啊,怎么回事情啊
#5
哎,这里真的没有JSP高手吗?郁闷
#6
看了,好象没有错啊,
你库里面不会只有一条记录吧!!!
你库里面不会只有一条记录吧!!!
#7
不是,有好几条,不过老是只有显示第一条,真是郁闷
#8
指针没有移动啊
#9
在rs.next()的外面再做次循环呀,要不怎么能移动记录集呢?
#10
taleny(非常可乐) 还要怎么循环啊 ,不是已经有循环了吗
#11
你移动记录集的时候肯定要触发事件,就在这个事件的时候做循环。如果一开始页面就需要显示多条记录,一开始就做循环,如果是点击button移动记录集,就在这个时候做。
#12
try
{
for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
while(rs.next())
{
id[l]=rs.getString("id");
title[l]=rs.getString("title");
date[l]=rs.getString("date");
date2[l]=date[l].substring(0,10);
nod[l]=rs.getString("nod");
l=l+1;
}
}
catch(Exception e)
{
}
这是我自己网站的一段代码,页面要求显示16条记录。在rs.next()的外面有个for循环。
{
for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
while(rs.next())
{
id[l]=rs.getString("id");
title[l]=rs.getString("title");
date[l]=rs.getString("date");
date2[l]=date[l].substring(0,10);
nod[l]=rs.getString("nod");
l=l+1;
}
}
catch(Exception e)
{
}
这是我自己网站的一段代码,页面要求显示16条记录。在rs.next()的外面有个for循环。
#13
我是初学者啊, taleny(非常可乐) 那你的for(int qq=0;qq<(16*(page2));qq++)
{rs.next();}
这段代码什么意思啊 ,我还是不大懂你的意思哦
{rs.next();}
这段代码什么意思啊 ,我还是不大懂你的意思哦
#14
郁闷,讲了等于没讲
#15
你可以用游标啊,这样很容易解决的。
#16
不要在循环里面嵌查询。因为你的程序有很多漏洞。
建议写成一句sql语句这样就没有啥问题了
建议写成一句sql语句这样就没有啥问题了
#17
我是查询两个表里面的记录,先要查出一个表的字段,另一个表在根据这个字段去查,有好点的办法吗
#18
你的记录没有移动呀
在while循环里把指针指向下一条
在while循环里把指针指向下一条
#19
没移动???
#20
有两个while啊 ,每个不是都有.next()的吗 ,怎么还要移动
#21
还是没人知道真正的错误啊????
这样一段代码在我另一个网页当中就可以的,为什么这里就错了呢
这样一段代码在我另一个网页当中就可以的,为什么这里就错了呢
#22
sql=con.createStatement();
rs=sql.executeQuery("select * from student_credit_record order by student_id");
执行后产生的结果在
rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)
被覆盖了,所以只显示第一条
你可以在后面的rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)前面重新定义一个
sql2=con.createStatement();
rs1=sql2.executeQuery("select count(*) from bad_record where student_id="+param)
这样肯定就没问题了!!!
rs=sql.executeQuery("select * from student_credit_record order by student_id");
执行后产生的结果在
rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)
被覆盖了,所以只显示第一条
你可以在后面的rs1=sql.executeQuery("select count(*) from bad_record where student_id="+param)前面重新定义一个
sql2=con.createStatement();
rs1=sql2.executeQuery("select count(*) from bad_record where student_id="+param)
这样肯定就没问题了!!!