当前位置:编程学习 > C#/ASP.NET >>

如果用户发现数据库操作出了错 想返回上一步 这个是怎么做的

--------------------编程问答-------------------- try catch
 出错了就回滚 --------------------编程问答-------------------- 回滚只在事务范围内有效。
对于没有提交的事务,在关闭时都会被DB放弃的。
且事务的提交必须是显示的。 --------------------编程问答-------------------- 所有的操作都存在緩存裡
只有最後一步才提交數據庫 --------------------编程问答--------------------
引用楼主 daoluan2011 的回复:
1我也知道 有个 事务回滚 但是回滚 好像不能回滚多次操作吧

2如果第一次操作完成 并且关闭了conn 这样的回滚还能用么


第一,什么叫回滚多次操作?   回滚就是撤销此事务进行的操作
第二,数据库连接都断开了,还回滚什么?   --------------------编程问答--------------------
引用楼主 daoluan2011 的回复:
1我也知道 有个 事务回滚 但是回滚 好像不能回滚多次操作吧

2如果第一次操作完成 并且关闭了conn 这样的回滚还能用么


1. 只要事务没有提交(commit),之间进行的多次操作可以一起回滚。提交后就不行了。

2. conn关闭了,事务操作已经完成了,没得回滚了。 --------------------编程问答--------------------
引用 5 楼 calmzeal 的回复:
引用楼主 daoluan2011 的回复:
1我也知道 有个 事务回滚 但是回滚 好像不能回滚多次操作吧

2如果第一次操作完成 并且关闭了conn 这样的回滚还能用么


1. 只要事务没有提交(commit),之间进行的多次操作可以一起回滚。提交后就不行了。

2. conn关闭了,事务操作已经完成了,没得回滚了。


+1

--------------------编程问答-------------------- 在数据库里做事务。可控性高 --------------------编程问答--------------------
//执行事务处理
public void DoTran()
{  //建立连接并打开
 SqlConnection myConn=GetConn();
 myConn.Open();
 SqlCommand myComm=new SqlCommand();
 //SqlTransaction myTran=new SqlTransaction();
 //注意,SqlTransaction类无公开的构造函数
 SqlTransaction myTran;
 //创建一个事务
 myTran=myConn.BeginTransaction();
 try
 {
  //从此开始,基于该连接的数据操作都被认为是事务的一部分
  //下面绑定连接和事务对象
  myComm.Connection=myConn;
  myComm.Transaction=myTran; //定位到pubs数据库
  myComm.CommandText="USE pubs";
  myComm.ExecuteNonQuery();//操作1
  myComm.CommandText=""; //操作2
  myComm.ExecuteNonQuery();
   //提交事务
  myTran.Commit();
 }
 catch(Exception err)
 {
    myTran.Roback();
  throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
  }
 finally
 {
  myConn.Close();
  }
}
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,