结果集的问题,各位大虾帮帮忙

请输入... 2009-04-08 02:56:29
SQLStr = "select ";
SQLStr += " (select outdpot from PRODORDER where listcode=PRODORDERLIST.ordercode)OutDpot, ";
SQLStr += " (select indpot from PRODORDER where listcode=PRODORDERLIST.ordercode)InDpot , ";
SQLStr += " ProdCode,ProdNum,prodprice ";
SQLStr += " from PRODORDERLIST ";
SQLStr += " where ordercode='"+OrderCode+"'";

rs1=jdbc.query(SQLStr);//有多条记录
while(rs1.next())
{
OutDpotCode = rs1.getString("OutDpot");
InDpotCode = rs1.getString("InDpot");
ProdCode = rs1.getString("ProdCode");
ProdNum = mf.ObjToInt(rs1.getString("ProdNum"));
ProdPrice = mf.ObjToDub(rs1.getString("prodprice"));

//更新出库库存
if (ErrMsg == null)
{
SQLStr = "update PRODDPOT set PRODNUM = PRODNUM - " + ProdNum + ", UPDATEDATE = SYSDATE ";
SQLStr += " where DPOTCODE = '" + OutDpotCode + "' ";
SQLStr += " and DPOTSECT = '" + SelDpotSect + "' ";
SQLStr += " and PRODCODE = '" + ProdCode + "'";
if (jdbc.update(SQLStr)!=1) ErrMsg = "*更新数据库错误!";
}
}


我上面的SQL里有多条记录,但是运行了if (jdbc.update(SQLStr)!=1) ErrMsg = "*更新数据库错误!" 这句后,while运行了一次就退出了,修改的语句也没有错,这是什么原因,是不是结果集受到了影响,各位大虾帮帮忙啊!
...全文
151 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ghost_520 2009-04-09
  • 打赏
  • 举报
回复

你把你的代码 try-catch 一下,也许有异常抛出呢?
请输入... 2009-04-09
  • 打赏
  • 举报
回复
谢谢各位了!我用其它方式处理了
herowach 2009-04-08
  • 打赏
  • 举报
回复
很早以前遇到过,不会发生异常,但while循环就是只执行一次,一般是由于代码混乱和多次使用同一个Statement执行SQL引起,重新使用一个Statement试试
sjkof 2009-04-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shagoo 的回复:]
很有可能是sql问题 运行失败退出了~
[/Quote]

同意
shagoo 2009-04-08
  • 打赏
  • 举报
回复
很有可能是sql问题 运行失败退出了~
Billy.Wang 2009-04-08
  • 打赏
  • 举报
回复

把result的值打出来看看,检查一下你的update 有没有问题? 在数据库里执行一下,语句看能否正常更新?


result=jdbc.update(SQLStr)
System.out.println("--result--"+result);
if ((result!=1){
System.out.println("更新数据库错误:" + result);
ErrMsg = "*更新数据库错误!"; }
shagoo 2009-04-08
  • 打赏
  • 举报
回复
按理说是没有影响的~ 你把 if (ErrMsg == null) 后面的 SQLStr 换成新的 string 看看~
我觉得不会有什么影响啊~
请输入... 2009-04-08
  • 打赏
  • 举报
回复
rs1.next()为什么只运行了一次,但它有多条记录,jdbc.update(SQLStr)这个运行对错都能while(rs1.next())没有影响吧
APOLLO_TS 2009-04-08
  • 打赏
  • 举报
回复
if (ErrMsg == null && ErrMsg =null)
goldlive_8888 2009-04-08
  • 打赏
  • 举报
回复
while(rs1.next())
{
OutDpotCode = rs1.getString("OutDpot");
InDpotCode = rs1.getString("InDpot");
ProdCode = rs1.getString("ProdCode");
ProdNum = mf.ObjToInt(rs1.getString("ProdNum"));
ProdPrice = mf.ObjToDub(rs1.getString("prodprice"));
String ErrMsg = null;
//更新出库库存
if (ErrMsg == null)
{
SQLStr = "update PRODDPOT set PRODNUM = PRODNUM - " + ProdNum + ", UPDATEDATE = SYSDATE ";
SQLStr += " where DPOTCODE = '" + OutDpotCode + "' ";
SQLStr += " and DPOTSECT = '" + SelDpotSect + "' ";
SQLStr += " and PRODCODE = '" + ProdCode + "'";
int result = 0;
if ((result=jdbc.update(SQLStr))!=1){
System.out.println("更新数据库错误:" + result);
ErrMsg = "*更新数据库错误!"; }
}
}

81,122

社区成员

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

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