你以前没有使用SqlTransaction类进行事务处理?
呵呵....
关于oracle的话,可以参考如下:using (IDbCommand cmd = conn.CreateCommand()) 

    IDbTransaction tran = conn.BeginTransaction();
    cmd .Connection = conn;
    cmd .Transaction = tran;
try
{
cmd.CommandType = CommandType.Text; 
                cmd.CommandText = "Insert into....."; 
                cmd.ExecuteNonQuery();        }
catch (Exception ex)
{
tran.Rollback}
                cmd.CommandType = CommandType.Text; 
                //cmd.CommandText = "rollback"; 
tran.Rollback()
                cmd.ExecuteNonQuery();        
            } 

解决方案 »

  1.   

    对不起,忘记删除你上面的一些代码了
    如下:using (IDbCommand cmd = conn.CreateCommand()) 

        IDbTransaction tran = conn.BeginTransaction();
        cmd .Connection = conn;
        cmd .Transaction = tran;
        try
       {
            cmd.CommandType = CommandType.Text; 
            cmd.CommandText = "Insert into....."; 
            cmd.ExecuteNonQuery();           }
       catch (Exception ex)
       {
            tran.Rollback    }
      

  2.   

    继续补充...using (IDbCommand cmd = conn.CreateCommand()) 

        IDbTransaction tran = conn.BeginTransaction();
        cmd .Connection = conn;
        cmd .Transaction = tran;
        try
       {
            cmd.CommandType = CommandType.Text; 
            cmd.CommandText = "Insert into....."; 
            cmd.ExecuteNonQuery();        
            tran.Commit();
       }
       catch (Exception ex)
       {
            tran.Rollback
       }
      

  3.   

    嗬嗬,我就是要用
       cmd.CommandText  来执行啊。
    你那种方式我也知道,只是想用sql语句来执行
    谢谢。
      

  4.   

    别说,以前还真没有试过直接执行rollback
    下次一定实验一下。
    对了
    oracle好像需要设置是否自动提交,你把auto改掉试试
      

  5.   

    用Oracle Data Providers for .NET...OracleTransaction类的Save方法可以在事务中设置保存点...之后可以回滚到保存点...
      

  6.   

    .......没有事务,怎么回滚。rallback是在事务或者存储过程的时候才有用。