如何实现数据库事务?

老大刘 2002-07-01 09:20:07
我现在做的一个项目,是用C#开发的。
遇到的问题是:有些情况下,某一个用户操作涉及到对多个数据库表的操作,而且这些操作是分别封装在不同的类里的,我应该如何实现数据库事务处理呢?
一种最直接的方式是在各个类对象之间传递同一个数据库连接,这种方式太......呢!不是实在没有办法,我不想使用这种方法。
各位有没有什么更好的方法呢?
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreammaster 2002-07-01
  • 打赏
  • 举报
回复
在不同的类里没有关系,将事物作为参数传递就行了。

public void CommitA(SqlTransaction aTrans) {
aTrans中具有Connection,这里进行操作没有什么错误
}
shanminmin 2002-07-01
  • 打赏
  • 举报
回复
IceSheet()

你把连接保存在session中,那么人多了你的DataBase server还不疯了?
Meditate 2002-07-01
  • 打赏
  • 举报
回复
多个连接完成一个事物不是没有,利用MS DTC不过他的初衷是在异种数据库间保持事务一致性!
maldini3328 2002-07-01
  • 打赏
  • 举报
回复
同意楼上的
cometsky 2002-07-01
  • 打赏
  • 举报
回复
只能用一个连接,从没听说过一个事务由多个连接组成的。
老大刘 2002-07-01
  • 打赏
  • 举报
回复


比如:
如果是一个Web Application,我会将数据库连接保存到Session中以便于多个页面调用同一个数据库连接(当然这种情况不太可能发生:>)。
TINA 2002-07-01
  • 打赏
  • 举报
回复
可能你的操作涉及到组件间得调用,如果这样的话,可以重新考虑一下设计结构,尽量让某一类的操作集中在一个组件当中。
如果非要象你说的那样的话,哈哈,还没有想到怎么去做,我现在虽然也是用
c#+asp.net+com+写,不过还没有碰到
比如一个采购管理模块,我就只用一个类库来处理所有的采购方面的业务逻辑
销售管理模块,再用另外一个类库来处理。
老大刘 2002-07-01
  • 打赏
  • 举报
回复
TO:bearbaba(儿子笨苯)
我好象一直在问的是数据库事务哦!?
如果可以直接用session来做,我还问干什么?注意问题:
遇到的问题是:有些情况下,某一个用户操作涉及到对多个数据库表的操作,而且这些操作是分别封装在不同的类里的,我应该如何实现数据库事务处理呢?
如果我没说清楚,我说得再清楚一些:我说的封装是指在业务逻辑层封装.
在类里可以直接调用Session对象吗?如果还是要传引用的话,那我还不如直接传SqlTransaction对象的引用呢!
bearbaba 2002-07-01
  • 打赏
  • 举报
回复
大哥,你说的问题确实需要使用session来解决,但是你也不要吓设问题呀!
事务处理是指这个吗?
老大刘 2002-07-01
  • 打赏
  • 举报
回复
我期望的目标就是不要将数据库连接当做参数传来传去的。以前没有考虑数据库事务时,我是将所有对数据库的操作都封装在同一个类里的,现在我不希望做太大的修改。
我对C#还不是很熟,要是可以实现象Session这样的全局对象就好了!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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