关于数据库更新返回值问题

CrazyNana 2010-03-29 05:17:07
我用的JSP做的
代码如下:

float bnumber=cart.size();
String sql="insert into [dbo].[order] (bnumber,username,truename,tel,Email,postcode,address,pay,bz) values("+bnumber+",'"+username+"','"+truename+"','"+tel+"','"+Email+"','"+postcode+"','"+address+"','"+pay+"','"+bz+"')";
int temp=0;
temp=connDB.executeUpdate(sql); if (temp==0){
flag="false";
}else{
orderID=temp;
}
for(int i=0;i<cart.size();i++){
Routeelement myRouteelement=(Routeelement)cart.elementAt(i);
String RouteID=myRouteelement.RouteID;
Price=myRouteelement.Price;
number=myRouteelement.number;
String str="insert into order_detail(orderID,RouteID,Price,number) values("+orderID+",'"+RouteID+"',"+Price+","+number+")";
temp=connDB.executeUpdate(str);


我想把更新后的OrderID的值插入到order_detail中,但是在表order中orderID的值会变,就是在表order_detail中orderID的值一直都是1. 不知道是不是connDB.executeUpdate(sql);的返回值问题。
各位帮帮忙,不知道怎么办了!
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyNana 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 suqingdi 的回复:]
你那程序不太看懂。。。
是向表A插入一条数据,同时向表B也插入一条数据,但必须关联表A的ID,是这样吗?
个人建义,如果联表操作可以选用存储过程来实现,把逻辑处理封装在存储过程里,然后用事务来管理,这样比较好,在JSP这边也比较清爽。不访试试看。。。。
[/Quote]
没错就是想这样,但是还是不懂怎么做呀...
帮帮忙...
41488 2010-03-29
  • 打赏
  • 举报
回复
你那程序不太看懂。。。
是向表A插入一条数据,同时向表B也插入一条数据,但必须关联表A的ID,是这样吗?
个人建义,如果联表操作可以选用存储过程来实现,把逻辑处理封装在存储过程里,然后用事务来管理,这样比较好,在JSP这边也比较清爽。不访试试看。。。。
CrazyNana 2010-03-29
  • 打赏
  • 举报
回复
我在第一次插入记录后 输出orderID的值也是1 !
就是在
String sql="insert into [dbo].[order] (bnumber,username,truename,tel,Email,postcode,address,pay,bz) values("+bnumber+",'"+username+"','"+truename+"','"+tel+"','"+Email+"','"+postcode+"','"+address+"','"+pay+"','"+bz+"')";
之后
out.println("<script>alert('"+String.valueOf(orderID)+"ID号')</script>");
返回也是1!
CrazyNana 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ibm_hoojo 的回复:]
CSS code

我想把更新后的OrderID的值插入到order_detail中,但是在表order中orderID的值会变,就是在表order_detail中orderID的值一直都是1. 不知道是不是connDB.executeUpdate(sql);的返回值问题。
connDB.executeUpdate(sql);返回的是影响的行数,你插入一条数据影响1行。所以值一直是1;
你……
[/Quote]

如何说呢 详细点好吗
hoojo 2010-03-29
  • 打赏
  • 举报
回复

我想把更新后的OrderID的值插入到order_detail中,但是在表order中orderID的值会变,就是在表order_detail中orderID的值一直都是1. 不知道是不是connDB.executeUpdate(sql);的返回值问题。
connDB.executeUpdate(sql);返回的是影响的行数,你插入一条数据影响1行。所以值一直是1;
你可以把它的主键取出来,或是用自增的方法。
共享to未来 2010-03-29
  • 打赏
  • 举报
回复
你的那sql语句就有错吧!

81,094

社区成员

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

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