代码结构这样:
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啊,好奇怪!