使用oledb访问Oracle,ExecuteNonQuery是否立刻提交呢,是否会造成死锁

本文探讨了使用OleDbConnection和ExecuteNonQuery访问Oracle数据库时是否会立即提交事务,以及是否可能导致死锁的问题。通过示例代码展示,在没有显式开启事务的情况下,ExecuteNonQuery会提交更改并释放锁,不会造成死锁。然而,当在事务中执行多个更新操作,如果中断事务,可能会出现等待锁资源而非死锁的情况,Oracle会自我调整以避免死锁。
摘要由CSDN通过智能技术生成

有这么一段程序:

 

OleDbConnection conSin = new OleDbConnection(connStrSin3);
            OleDbCommand comSin = new OleDbCommand();
            try
            {
                conSin.Open();
                comSin.Connection = conSin;
                comSin.CommandText = " update testlockb set cid=5 ";
                comSin.ExecuteNonQuery();
                int x = 0;
                

            }
            catch (Exception ex)
            {
             
             
            }
            finally
            {
                comSin.Dispose();
                conSin.Close();
                conSin.Dispose();
            }

 

 

在“ int x = 0;”处加断点,并使用sqlplus 执行语句 update tablelockb set cid =2; 能够执行,不等待锁。说明即使没有close连接,ExecuteNonQuery(),也

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值