为了账号安全,请及时绑定邮箱和手机立即绑定

.net中使用transactionScope连接oracle数据库,事务没有提交,但是数据还是被修改了

.net中使用transactionScope连接oracle数据库,事务没有提交,但是数据还是被修改了

子衿沉夜 2018-12-06 17:11:32
代码如下 try { using (TransactionScope scope=new TransactionScope()) { AddForSqlserver("insert into test values (1,'aaa')"); AddForOracle("insert into test values ('001','aaa',1)"); AddForOracle("insert into test values ('001','aaa')"); scope.Complete(); } } catch (Exception ex) { } 执行难第三条sql  会插入失败,sqlsqlver的数据时没有被插入的,但是第二条oracle的数据确被插入了。 private void AddForOracle(string sql) { using (var conn = new OracleConnection(str)) { conn.Open(); var cmd = conn.CreateCommand(); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; try { int n = cmd.ExecuteNonQuery(); if (n
查看完整描述

7 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

你给你的 cmd 设置 Transaction 属性。
查看完整回答
反对 回复 2018-12-09
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

这个只是一个测试用例,实际上应用场景执行的操作资源的地方可能位于不同的网络节点上
查看完整回答
反对 回复 2018-12-09
?
12345678_0001

TA贡献1802条经验 获得超5个赞

@大灰机: 所以你的问题是?不太明白。
查看完整回答
反对 回复 2018-12-09
?
GCT1015

TA贡献1827条经验 获得超4个赞

@jone_e: 问题就是Oracle.DataAccess中提交数据时不能感知当前环境事务。
查看完整回答
反对 回复 2018-12-09
  • 7 回答
  • 0 关注
  • 944 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信