遍历修改

jiappkpp 2008-03-30 02:42:07
if(rs.next())
{
int exp= rs.getInt("EXPERIENCE");
if (exp>1000)
{
exp= exp - 50;
sqlstring="update chatuser set EXPERIENCE='"+exp+"'";
sqlbean.executeUpdate(sqlstring);
上面if(re.next())应该是没有到表单底部就遍历向下执行吧,我现在想把它改为只对表单当前一行进行操作,不想她向下执行应该怎么改呢
吧if(rs.next())改为什么
谢谢 请指导哈
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiappkpp 2008-03-30
  • 打赏
  • 举报
回复
谢谢 马上试用
胡矣 2008-03-30
  • 打赏
  • 举报
回复
if(rs.next()) 
{
int exp= rs.getInt("EXPERIENCE");
//下面这段逻辑上有问题,这样写,如果该记录的exp>1000,就修改所以的记录.
if (exp>1000)
{
exp= exp - 50;
sqlstring="update chatuser set EXPERIENCE='"+exp+"'";
sqlbean.executeUpdate(sqlstring);

应改为
if(rs.next()) 
{
int exp= rs.getInt("EXPERIENCE");
//从结果集中取出能标志这条记录的主键.
类型 pk = rs.get***("***");
if (exp>1000)
{
exp= exp - 50;
sqlstring="update chatuser set EXPERIENCE='"+exp+"'where 主键字段名 = '"+ pk +"'";
sqlbean.executeUpdate(sqlstring);

jiappkpp 2008-03-30
  • 打赏
  • 举报
回复
帮我看一下 我会那里出错呢 我找不到 呀 谢谢
梅小西Echo 2008-03-30
  • 打赏
  • 举报
回复
sqlstring="update chatuser set EXPERIENCE='"+exp+"'";

你这句当然有错了,where条件在哪里啊,你这样肯定都改了,应该改成"update chatuser set experience='"+exp+"' where id ="+rs.getInt(id);
fuyou001 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wang8118 的回复:]
你这个没有问题啊,相反,我觉得,如果要全部遍历,把if改为while
[/Quote]
jiappkpp 2008-03-30
  • 打赏
  • 举报
回复
我又试了 结果把我的用户每个又减了50分
jiappkpp 2008-03-30
  • 打赏
  • 举报
回复
但是我执行的时候 她把我数据库中所有的人物经验值都减了50分呀
我发个我这个jsp页面的全部代码上来把
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.*" %>
<jsp:useBean id="sqlbean" scope="page" class="database.sqlbean" />
<html>
<head>
<title>用户升级</title>
</head>
<body>
<%
request.setCharacterEncoding("gb2312");
String kickname = request.getParameter("kickname");
String Name =(String) session.getAttribute("originname");

ResultSet rs=null;
String sqlstring = "select * from chatuser where username = '" + Name + "'";
rs = sqlbean.executeQuery(sqlstring);
if(rs.next())
{
int exp= rs.getInt("EXPERIENCE");
if (exp>1000)
{
exp= exp - 50;
sqlstring="update chatuser set EXPERIENCE='"+exp+"'";
sqlbean.executeUpdate(sqlstring);

synchronized (application) {
Vector UserName=null;
UserName= (Vector)application.getAttribute("UserName");
UserName.remove(kickname);
}
synchronized (application) {
Vector outMessage=null;
outMessage= (Vector)application.getAttribute("Message");
if(outMessage==null)
outMessage= new Vector(30,10);
String outstr="系统公告:<font color=blue>"+kickname+"</font>被踢出了聊天室";
String str1="no";
String systemSpeak = "yes";

outMessage.addElement(str1);
outMessage.addElement(Name);
outMessage.addElement(str1);
outMessage.addElement(outstr);
outMessage.addElement(systemSpeak);
outMessage.addElement(str1);
application.setAttribute("Message", outMessage);
}
sqlbean.freeRs(rs);
out.print("<script>alert(\"该用户已经被踢出!\");");
out.print("window.location=\"advanced.jsp\"</script>");
}
else
{
sqlbean.freeRs(rs);
out.print("<script>alert(\"只有经验大于1000分的用户才能踢人!\");");
out.print("window.location=\"advanced.jsp\"</script>");
}
}
else
{
out.print("<script>alert(\"只有注册用户且经验大于1000才能踢人!\");");
out.print("window.location=\"advanced.jsp\"</script>");
}



%>
</body>
</html>
梅小西Echo 2008-03-30
  • 打赏
  • 举报
回复
你这个没有问题啊,相反,我觉得,如果要全部遍历,把if改为while

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧