首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查我是否处于事务中?

问如何检查我是否处于事务中?
EN

Stack Overflow用户
提问于 2010-01-06 16:26:19
回答 1查看 3.7K关注 0票数 1

我最近扩展了一段代码,但现在必须使用事务。它看起来只能在事务中访问,但看起来并不让我感到舒服。我使用SQLite和ADO.NET编写了if(cmd.Transaction==null),但它在事务中为空。我该怎么检查?

注意:我将来会在TSQL中使用这段代码。这是一个使用SQLite的快速原型

-edit-我正在考虑嵌套事务,但这段代码生成了一段sql,并使用命令来添加参数。因此,添加嵌套事务需要进行大量修改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-06 16:40:03

根据SQL的性质及其在应用程序中的适用性,嵌套事务可能更合适,无论调用的上下文如何,都要确保事务存在。

例如,您可以将调用代码包装在TransactionScope块中。如果存在事务,这将不会对操作产生实际影响。如果不存在事务,它将创建一个事务,并确保ADO.NET代码参与该事务。

只有当您乐于将SQL作为单个操作执行时,这种方法才有效。如果只将其作为较大事务的一部分进行调用,则此方法不起作用。

要确定事务是否存在,您必须检查ADO.NET命令上的显式事务(如上所述),并使用Transaction.Current属性检查System.Transactions编程模型中是否存在环境事务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2011677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档