c#,for循环插入数据库时,如中间发生错误,如何撤销之前已产生的所有结果。

for循环中,insertinto表A,中间某一条信息出现错误时,如何把前面已经成功插入表A的信息也作废,还原到没插入表A这个动作之前。... for循环中,insert into 表A ,中间某一条信息出现错误时,如何把前面已经成功插入表A的信息也作废,还原到没插入表A这个动作之前。 展开
 我来答
wwtoob
2014-09-30 · 超过29用户采纳过TA的回答
知道答主
回答量:146
采纳率:50%
帮助的人:35.5万
展开全部
加事物 中间报错就回滚,整个for循环都写在事物中,最后提交,请采纳!!!
追问
这个事务怎么弄,没有尝试过,有没有示例呢?
追答
JDBC:   public String executeActu(){
try{
TransactionContext.beginTransaction(); // 引入这个包,调用事物开始
validateParam();
String sign=createChangeSign()+flag;
if(!changeSign.equals(sign)){
throw new SignExp();
}
if(checkActuData())
throw new MoreSameOrderExp("不能重复提交,请等待客服审核");
doActu();
TransactionContext.commitTran(); //一切正常,,提交事物,这里你的数据全部执行
return SUCCESS;
}catch (Exception e) {
TransactionContext.rollbackTran(); //发生异常,数据操作失败 回滚事物,前边添加 的数据就回撤销。
log.error("实名认证", e);
setErrorMsg(e.getMessage());
return INPUT;
}
}
万恶小C
2014-09-30 · TA获得超过107个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:161万
展开全部
没办法真的还原,所谓的还原,起始如果错误就把之前插入选出来的删掉
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清水栞
2014-09-30 · TA获得超过1547个赞
知道小有建树答主
回答量:1538
采纳率:50%
帮助的人:984万
展开全部
数据库有事务功能,可以满足你的要求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式