DbConnection conn = DB.CreateConnection();
conn.Open();
_Transaction = conn.BeginTransaction();
.
.
上面是我定义的事国开始.当执行数据之后,不Rollback(),也不Commit().当程序运行完成,为什么会是自动Commit操作过的数据.
注意:断点调试或没有运行完,可以查看到锁表.完行完之后,表也解锁了,数据也提交啦.

解决方案 »

  1.   

    用Connection对象BeginTransaction返回一个Transaction对象,利用这个对象基于这个链接来提交数据
    using (DbTransaction dbTransaction = dbConnection.BeginTransaction(IsolationLevel.Serializable))
                        {
                        
                         dbTransaction.Commit(); 
                        }
      

  2.   

    dbTransaction.Commit();  
    我不运行这个.他也会自动把执行过的数据都commit了.
      

  3.   


    Database db = DatabaseFactory.CreateDatabase();
    DbConnection _dbConnection = DatabaseFactory.CreateDatabase().CreateConnection();
    _dbConnection.Open();
    IDbTransaction _transaction = _dbConnection.BeginTransaction();
    string sql = @"Insert Into ...";
    int i = db.ExecuteNonQuery(_transaction, CommandType.Text, sql);以上程序不Rollback(),也不Commit().当程序运行完成自动Commit()了.需要的结果当不对事务操作时.是锁表状态.请问如何操作呢?