比如登录:登录成功后,更新下此用户的登录次数以及最后次登录时间
if(假如登录成功)

      //执行更新语句,更新下用户最后一次登录的时间以及状态
       如果更新成功了,当然没有问题
       假如更新失败了,我不能提示用户这个更新失败的消息吧,
      因为登录是成功的。。

else

       //登录失败

解决方案 »

  1.   


    其实你登录判断的同时就要把这个数据更新到数据库中。
    不用事务也可以满足。
    所以你那个IF里面的条件应该放到判断登录的时候判断也可以用事务 
    其中有一个没有满足条件 就提示登录未成功
    从新登录事务DEMO。
    //执行事务处理
    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.rollback();
      throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
      }
     finally
     {
      myConn.Close();
      }
    }
      

  2.   

    try
    catch
    commit
    rollback
    if(假如登录成功)

      //执行更新语句,更新下用户最后一次登录的时间以及状态
      如果更新成功了,当然并没有真正的提交
      假如更新失败了,我提示用户这个更新失败,回滚

      

  3.   

    最常用的辦法之一就是在存儲過程中編寫事務性的sql指令集,它的一個非常實用的特性是:保持數據的一致性。即在1,2,n個操作中,只要第x個操作失敗,那麼前面的操作都會回滾(rollback)。
      

  4.   

    事务操作可以解决此类问题
    begin transaction
    commit
    roolback