实际项目中,遇到一个问题:
软件界面中,有个提交按钮,点击后,做了2个动作:
1.更新数据库中的对应字段;
2.向另外一个服务器发送请求;
开发过程中,第一步完成了,第二步失败了,但是我希望如果第二步失败的话,第一步最好也别执行。
所以就想到了Sql中,以及Revit二次开发中,都有事务这个处理方式,将需要绑定在一起的几个方法,包裹在事务中,实现要成功一起成功,要失败一起失败个效果。
在.net framework中,也有这样的事务处理。
using (var scope = new TransactionScope())
{
MehtodA();
var isSucceed = MehtodB();
if (isSucceed)
{
scope.Complete();
}
else
{
TaskDialog.Show("Tips", "请求失败!");
}
}
需要添加对应的命名空间:System.Transactions,对应的dll文件名System.Transactions.dll