日期:2014-05-17  浏览次数:20612 次

为什么对数据库的遍历,不能查询到最后一行!
我用的是access 数据库,
public List ZhifuOrderInfo(String orderid) {
List<OrderInfo>list = new ArrayList();
try {
Connection con = DBUtil.getConnection();
String sql = "SELECT * FROM `orderinfo` WHERE `orderid` like "+orderid;
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();

while(rs.next()) {
OrderInfo oi = new OrderInfo();
oi.setOrderid(rs.getString(2));
oi.setGoodname(rs.getString(4));
                oi.setPrice(rs.getString(5));
                oi.setGoodtype(rs.getString(6));
                oi.setNumber(rs.getString(7));
                oi.setSum(rs.getString(8));  
                System.out.println("===========================");
                System.out.println("orderid="+orderid);
                System.out.println(oi.getGoodname()+"zhifu");
                System.out.println(oi.getOrderid()+"zhifu");
                System.out.println("===========================");
              
                list.add(oi);                       
}

rs.close();
pst.close();
con.close();
}catch(Exception e) {
e.printStackTrace();
}
return list;
}

同一个订单有三条数据,测试了一下只能输出前两条数据,最后一条不能输出;数据库里面是有三条的!

------解决方案--------------------
把你拼接好的sql直接放到数据库中去执行下,看看能查出来几行
------解决方案--------------------
  list.add(oi);  看看添加几次。     
------解决方案--------------------
把你的sql直接数据库执行看能否得出三条。还有,你的sql对orderid的筛选为什么用like?但是却不是像'%%'
------解决方案--------------------
把where去掉再看。
------解决方案------------------