好心的人近来看看,谢谢了

xudaorong 2003-04-09 03:27:35
为什么我的程序 不能对表facilityhire的信息进行循环update呢,我用 System.out.println(fh_id);测试他输出有10个数,为什么当程序执行后他只对其中一个记录进行修改而已,为什么不全部修改,谢谢,程序在下面


Statement stmt = con.createStatement();
ResultSet rsHire = stmt.executeQuery("SELECT * FROM facilityhire");

while(rsHire.next())
{

if(rsHire.getString("fh_status").equalsIgnoreCase("WAITING"))

{
int fh_id=rsHire.getInt("fh_id");
System.out.println(fh_id);
String sql="UPDATE facilityhire SET fh_status='HIRING' WHERE fh_id="+fh_id;
stmt.executeUpdate(sql);

}


}
...全文
29 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xudaorong 2003-04-09
哦,好的,谢谢
回复
tingod 2003-04-09
msn吧,qq很少上
tingodl@hotmail.com
回复
xudaorong 2003-04-09
tingod(┞┧○┟┦○) :给我qq,我要结帐了
回复
xudaorong 2003-04-09
不会把,那我的为什么呢,算了,我把update移出循环外,用or来构造sql语句,现在能更新了,也不知道是那错误了,谢谢了,结帐,tingod(┞┧○┟┦○) ,交个朋友,以后有问题请教你,没问题把,我qq:24334225,你的呢
回复
tingod 2003-04-09
是重复的,有3条记录的fid是重复的,值均为0
执行上面语句后,全部更新为7
输出三个id为1、2、3
回复
xudaorong 2003-04-09
tingod(┞┧○┟┦○)
你的程序跟我的一样,但是你测试时你的fid一定是不能重复把,请让他几条记录的fid重复等于0,看看他能否全部update
回复
tingod 2003-04-09
Statement s=c.stmt();
ResultSet rs = s.executeQuery("SELECT * FROM xmlnode");

while(rs.next())
{
if(rs.getInt("fid")==0)
{
int id=rs.getInt("id");
System.out.println(id);
String sql="UPDATE xmlnode SET fid=7 WHERE id="+id;
s.executeUpdate(sql);

}


}

类似的东西啊,运行结果完全正常的
回复
xudaorong 2003-04-09
if(rsHire.getString("fh_status").equalsIgnoreCase("WAITING"))--对应---------SET fh_status='HIRING'
rsHire.getInt("fh_id");作为update条件
看看,发生逻辑错误吗 ,高手,认真看一下,真的不能更新符合条件的很多条记录,只更新一条
在while(rsHire.next())下,能不能对表本身进行更新呀!!!

回复
tingod 2003-04-09
看看数据库吧,估计符合条件的操作已经完成了吧?
我用类似的结构测试了,一点问题都没有的。
回复
xudaorong 2003-04-09
只有一次,郁闷,把他屏蔽掉stmt.executeUpdate(sql);以后看到的输出却有10个数,应该update10 才对呀
回复
tingod 2003-04-09
返回一个
int n=stmt.executeUpdate(sql);
看看进行了多少次的操作,或许有帮助。
回复
xudaorong 2003-04-09
不一样的,stmt.executeUpdate(sql);你把这条语句屏蔽掉看看,真的不一样 ,郁闷
回复
finnal 2003-04-09
up
回复
zez 2003-04-09
System.out.println(fh_id);
可以在 控制台上看到结果呀,
一样...
回复
xudaorong 2003-04-09
其实程序没有错误, totodo(小土豆仙),if语句位置也不能移,因为我if 条件只是用来测试的,真正的条件没写出来,反正逻辑上没错误.对了,忘了一点,我把 stmt.executeUpdate(sql);
屏蔽掉,他输出的fh_id有10个数,但不屏蔽,他只输出其中的一个数,为什么,谢谢,希望大家能找出原因,强调一下,程序中只对一个表进行操作,谢谢
回复
acefr 2003-04-09
jsp里面只是out.print()
回复
tingod 2003-04-09
zxhong(红透半边天)
我想,
System.out.println(fh_id);
应该没有错吧。。
回复
zxhong 2003-04-09
System.out.println(fh_id);
-->
out.println(fh_id);

其它没有错误
回复
zez 2003-04-09
stmt.executeUpdate("UPDATE facilityhire SET fh_status='HIRING' WHERE fh_status='WAITING'");
直接用这句试试...
你程序里这句
String sql="UPDATE facilityhire SET fh_status='HIRING' WHERE fh_id="+fh_id;
对吗?
WHERE fh_id="+fh_id 是什么意思?
回复
tingod 2003-04-09
测试完毕,未发生错误。

还有,既然你的操作是在同一个表内,可以直接用
UPDATE facilityhire SET fh_status='HIRING' WHERE fh_status='WAITING'
进行操作的
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-04-09 03:27
社区公告
暂无公告