为何只可insert一条记录?

ypchina 2002-04-02 12:49:29
我用如下代码添加子类,每个父类下只可加入一条记录,好像new_order_id没有起作用,但是在添加第一条记录的时候又是好的,奇怪?求救
String type_name_cn=request.getParameter("name_cn");
String type_name_en=request.getParameter("name_en");
String type_parent_id=request.getParameter("parent_id");
int t_p_id=java.lang.Integer.parseInt(type_parent_id);
Rst=Stmt.executeQuery("select max(type_order_id) as num from type");
Rst.next();
int new_order_id=Rst.getInt("num");
new_order_id+=1;
Stmt.executeUpdate("insert into type (type_name_cn,type_name_en,type_parent_id,type_order_id) values ('"+type_name_cn+"','"+type_name_en+"',"+t_p_id+","+new_order_id+")");
...全文
51 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypchina 2002-04-03
  • 打赏
  • 举报
回复
我用的是sql server,id是设成自增加,type_order_id只是用来排序的。我不是说要一次插入多条记录,是每次插入一条记录,添加一次就插入一次,但是我添加完第一次可以,在添加第二次就不行了。
lczddd 2002-04-03
  • 打赏
  • 举报
回复
这个问题挺有意思,呵呵,是不是打开的结果集类型不对,比如,独占模式等等,或是没有关闭啊,比如链接对象等等
huyuefox 2002-04-02
  • 打赏
  • 举报
回复
你的程序有问题结果集只有一条数据,就是用while也只能循环一次,当然只能插一条记录了
如果你用oracle 则主键用序列发生器,若是sql server则将id 设成自增加
Kin_CIOM 2002-04-02
  • 打赏
  • 举报
回复
是否key值重復,導致插入失敗.用事務處理吧,如果出錯就回滾否則提交.
ypchina 2002-04-02
  • 打赏
  • 举报
回复
还是不行,不是while的问题,插入第一条是可以的,再插入第二条时就不行了,不知道什么原因
huyuefox 2002-04-02
  • 打赏
  • 举报
回复
应该是这样的
String type_name_cn=request.getParameter("name_cn");
String type_name_en=request.getParameter("name_en");
String type_parent_id=request.getParameter("parent_id");
int t_p_id=java.lang.Integer.parseInt(type_parent_id);
ResultSet Rst=Stmt.executeQuery("select max(type_order_id) as num from type");
while(Rst.next()){
int new_order_id=Rst.getInt("num");
new_order_id+=1;
Stmt.executeUpdate("insert into type (type_name_cn,type_name_en,type_parent_id,type_order_id) values ('"+type_name_cn+"','"+type_name_en+"',"+t_p_id+","+new_order_id+")" );
}
iloveyouonlyonce 2002-04-02
  • 打赏
  • 举报
回复
你应该做一个while循环呀!!!
while (Rst.next()) {

//....

}

81,122

社区成员

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

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