c#,for循环插入数据库时,如中间发生错误,如何撤销之前已产生的所有结果。
for循环中,insertinto表A,中间某一条信息出现错误时,如何把前面已经成功插入表A的信息也作废,还原到没插入表A这个动作之前。...
for循环中,insert into 表A ,中间某一条信息出现错误时,如何把前面已经成功插入表A的信息也作废,还原到没插入表A这个动作之前。
展开
3个回答
展开全部
加事物 中间报错就回滚,整个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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询