代码结构这样:
cn = new OracleConnection(conStr);
cmd = new OracleCommand();
cn.Open();
trans = cn.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Connection = cn;
cmd.Transaction = trans;try
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();
.
.
.
cmd.CommandText = sqln;
cmd.ExecuteNonQuery(); trans.Commit();
catch(Exception e) {
trans.Rollback();
}一般情况下都是好的,发生了错误事务也会回滚。可是后来发现调试时候,如果事务执行到一半,如sql3,这时就关闭浏览器,对sql1、sql2的执行竟然被提交了,trans.Commit()还没有执行到呢,怎么就会被提交!这是我程序错了还是ado.net的bug啊,好奇怪!
cn = new OracleConnection(conStr);
cmd = new OracleCommand();
cn.Open();
trans = cn.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Connection = cn;
cmd.Transaction = trans;try
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();
.
.
.
cmd.CommandText = sqln;
cmd.ExecuteNonQuery(); trans.Commit();
catch(Exception e) {
trans.Rollback();
}一般情况下都是好的,发生了错误事务也会回滚。可是后来发现调试时候,如果事务执行到一半,如sql3,这时就关闭浏览器,对sql1、sql2的执行竟然被提交了,trans.Commit()还没有执行到呢,怎么就会被提交!这是我程序错了还是ado.net的bug啊,好奇怪!
解决方案 »
- 求助:本地正常,传上去出现问题。错误如下 ,望朋友们帮忙看下。
- C#基于蓝牙通讯,OBEX传输大文件如何构建buffer
- C#导出到Excel模板中,保存后Excel进程无法结束
- 求助:c#编写的应用程序运行时要安装Microsoft .NET Framework SDK 吗?
- Da.Fill的问题
- 怎么在C#代码中控制GridView的排序
- 窗体传值
- grid翻页方式问题
- 在.net下怎么用支付宝
- 请问如何打印DataGraid中的内容
- 准备跳槽,散分大行动!有些关于COM/DCOM,COM+,ASP.Net,WS,Remoting的请大家参与讨论!可另开贴加分!
- [求救!] 如何在.NET中实现语音传输!
我的也是这样~~~