关于事务

zlb789 2008-10-16 05:49:26
网站是三层模式 的

现在有2个方法 A() B () 操作数据库 要求2个同时执行成功 否则失败 ,想应该用事务,具体怎么用呢

我在2个方法在调用操作类的方法时 ,都没有加Transaction , 该怎么加 ?



...全文
90 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
呵呵,补充一下:

using(System.Data.IDbTransaction trans=OpenDatabaseClient())
{
A(trans);
B(trans);
teans.Commit();
}

接口实现时在Dispose方法中应该判断如果没有Commit就自动调用其Rollback方法。使用这个接口,你就把业务逻辑设计写好了。然后再去考虑自己开发一个OpenDatabaseClient方法。
  • 打赏
  • 举报
回复
using(IMyTransaction trans=OpenDatabaseClient())
{
A(trans);
B(trans);
}

事务就是如此,业务逻辑中既然你发现两个业务需要同步,那么你用代码表达出同步机制即可。写出了接口设计,再开发代码来实现它,而如果在设计BLL时被DAL拖累住思路就困难了。
cteddy 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dddd218 的回复:]
使用TransactionScope类,在业务层进行事务控制
[/Quote]

对对
我光想在DAL里面做了
在BLL里面用TransactionScope也是可以的
lovehongyun 2008-10-16
  • 打赏
  • 举报
回复
TransactionScope是最容易的作法.但是有一些限制.

lz你自己权衡吧.
lovehongyun 2008-10-16
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20081009/23/5d558322-f9a7-4124-8ce3-0394099ba087.html

看一下这个帖子中我18楼及其它楼的回复.

我也偷一下懒:)
dddd218 2008-10-16
  • 打赏
  • 举报
回复
使用TransactionScope类,在业务层进行事务控制
zlb789 2008-10-16
  • 打赏
  • 举报
回复
都是sql 但是连接不是一个拉
kfps8kfps8 2008-10-16
  • 打赏
  • 举报
回复

TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew, options))
{
try
{
方法 A()
方法 B()
}
catch
{
错误处理
}
scope.Complete();
}

cteddy 2008-10-16
  • 打赏
  • 举报
回复
是不是同一个
connection
是的话两个操作并一步
不就可以加事务了 啊
如果不同的数据库的话
一个oracle一个sql
那我技术有限
就真不会了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧