代码结构这样:
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啊,好奇怪!
解决方案 »
- NPOI读取Excel中的图片
- 我想用C#做一个能按正确进度显示从服务器上传和下载文件的进度条,请问用什么好用工具吗?
- C#倒计时问题
- 郁闷:<,单位好多机器,相同的cs程序,会出现同一sql语句有的出错,有的不出错的问题!!!(sos)
- C#怎么调用VC6编写的带有对话框(Dialog)或FormView的DLL
- 求助,一直在线,如何改变windows窗体的标题栏颜色?????
- 有没有人做过简单的设计器,象开发环境,可以点击工具箱,在窗口增加控件
- C#Datagridview如何根据下拉表选择的内容 改变Datagridview显示的内容
- 对路径“C:\”的访问被拒绝
- 请教JAVA和C#在所有相同条件下,谁的开发速度要快得多?快多少?
- 准备跳槽,散分大行动!有些关于COM/DCOM,COM+,ASP.Net,WS,Remoting的请大家参与讨论!可另开贴加分!
- [求救!] 如何在.NET中实现语音传输!
我的也是这样~~~