日期:2014-05-18  浏览次数:20726 次

关于数据库取值的问题,急
首先上代码
rs1=conn.executquery("select foodname from tb_foodinfo where foodid='"orderid"'");
while(rs1.next()){
    foodname=rs1.getstring("foodname");
    rs2=conn.executequery("select type from restruant where foodname='"foodname"'");
while(rs2.next()){
     type=rs2.getstring("type");//取出饭店的名字
     }
 rs3=conn.executequery("select tel from telbook where type ='"type"'");
while(rs3.next()){
    tel=rs3.getstring("tel");//根据饭店名取出电话
}
print(type+tel);
}
最后是执行结果
全聚德 13111111111
狗不理 13122222222
全聚德13122222222
这是什么原因呀?执行的前两条结果是对的啊,第三条是怎么回事?应该怎么解决呢?急用
数据库 java 编程

------解决方案--------------------
看看数据库里是不是对的
------解决方案--------------------
QUERY多了吧,查询语句合并一下试试
------解决方案--------------------
引用:
Quote: 引用:

没搞明白 "select type from restruant where foodname='"foodname"'" 这些语句是怎么编译通过的。

这不是源代码,这是我拿手机敲的,代码绝对没问题,就是最后一行结果会重复,而且饭店名与手机号不对应

你的代码逻辑有问题,

//这样循环的话有多个结果集的话,这块有问题。
while(rs2.next()){
     type=rs2.getstring("type");//取出饭店的名字
     }
//这个地方也一样了,根据饭店名字取电话号码,多个同名的饭店,电话不同,你的结果怎么确定啊。
while(rs3.next()){
    tel=rs3.getstring("tel");//根据饭店名取出电话
}


逻辑不清楚!