比如登录:登录成功后,更新下此用户的登录次数以及最后次登录时间
if(假如登录成功)
{
//执行更新语句,更新下用户最后一次登录的时间以及状态
如果更新成功了,当然没有问题
假如更新失败了,我不能提示用户这个更新失败的消息吧,
因为登录是成功的。。
}
else
{
//登录失败
}
if(假如登录成功)
{
//执行更新语句,更新下用户最后一次登录的时间以及状态
如果更新成功了,当然没有问题
假如更新失败了,我不能提示用户这个更新失败的消息吧,
因为登录是成功的。。
}
else
{
//登录失败
}
其实你登录判断的同时就要把这个数据更新到数据库中。
不用事务也可以满足。
所以你那个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();
}
}
catch
commit
rollback
if(假如登录成功)
{
//执行更新语句,更新下用户最后一次登录的时间以及状态
如果更新成功了,当然并没有真正的提交
假如更新失败了,我提示用户这个更新失败,回滚
}
begin transaction
commit
roolback