为何只可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+")");
...全文
8 点赞 收藏 7
写回复
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()) {

//....

}
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告