怎么判断一个连接是否已经开启了事务?

mademelaugh 2005-11-15 11:17:54
IDbConnection已经在某处开启了一个事务。
但由于事务变量是局部的。

怎么判断该连接已经开启了事务?

除去BeginTransaction+catch的方法。
...全文
1229 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mademelaugh 2005-11-16
  • 打赏
  • 举报
回复
我也是用的笨方法解决了这个问题。谢谢各位
mqmmx 2005-11-15
  • 打赏
  • 举报
回复
我用笨方法,把事务的处理写成一个类,在事务BeginTrans时用一个bool变量=true记录事务的状态。CommitTrans或Rollback时将变量=false,然后在正常处理时就根据变量值了解事务是否开启了
s5689412 2005-11-15
  • 打赏
  • 举报
回复
SqlCommand.Transaction 属性 [C#]请参见
SqlCommand 类 | SqlCommand 成员 | System.Data.SqlClient 命名空间 | SqlCommand 成员(Visual J# 语法) | C++ 托管扩展编程
要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET
语言
C#

C++

JScript

Visual Basic

全部显示
获取或设置将在其中执行 SqlCommand 的 SqlTransaction。

[Visual Basic]
Public Property Transaction As SqlTransaction

[C#]
public SqlTransaction Transaction {get; set;}

[C++]
public: __property SqlTransaction* get_Transaction();
public: __property void set_Transaction(SqlTransaction*);

[JScript]
public function get Transaction() : SqlTransaction;
public function set Transaction(SqlTransaction);

属性值
SqlTransaction。默认值为空引用(Visual Basic 中为 Nothing)。

备注
如果 Transaction 属性已设置为特定值,而命令正在执行过程中,则不能设置该属性。如果将此事务属性设置为 SqlTransaction 对象,而该对象未连接到与 SqlCommand 对象相同的 SqlConnection,那么在下次试图执行语句时将会发生异常。

从这段帮助来看,可以通过该值是否为空来判断。
mademelaugh 2005-11-15
  • 打赏
  • 举报
回复
3u回复。but我说的是事务,不是连接。
止戈而立 2005-11-15
  • 打赏
  • 举报
回复
if(this.oleDbConnection1.State==ConnectionState.Closed)
oleDbConnection1.Open();
你要的是这个吗?

110,539

社区成员

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

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

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