dotConnect for Google BigQuery Documentation
Devart.Data.BigQuery Namespace / BigQueryTransaction Class / Rollback Method
Example

On this page
    Rollback Method
    On this page
    Rolls back a database transaction from a pending state.
    Syntax
    'Declaration
     
    Public Overrides NotOverridable Sub Rollback() 
    public override void Rollback()
    Remarks
    The Rollback method is equivalent to the SQL ROLLBACK statement. The transaction can only be rolled back from a pending state (after BigQueryConnection.BeginTransaction has been called, but before Commit is called).
    Example
    The following example creates a BigQueryConnection and a BigQueryTransaction. It also demonstrates how to use the BigQueryConnection.BeginTransaction, Commit, and Rollback methods.
    public void RunBigQueryTransaction(string myConnString)
    {
      BigQueryConnection bigQueryConnection = new BigQueryConnection(myConnString);
      bigQueryConnection.Open();
    
      BigQueryCommand bigQueryCommand = new BigQueryCommand();
      BigQueryTransaction myTrans;
    
      // Start a local transaction
      myTrans = bigQueryConnection.BeginTransaction();
      // Assign transaction object for a pending local transaction
      bigQueryCommand.Transaction = myTrans;
    
      try
      {
        bigQueryCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(50, 'DEVELOPMENT')";
        bigQueryCommand.ExecuteNonQuery();
        bigQueryCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(60, 'PRODUCTION')";
        bigQueryCommand.ExecuteNonQuery();
        myTrans.Commit();
        Console.WriteLine("Both records are written to database.");
      }
      catch(Exception e)
      {
        myTrans.Rollback();
        Console.WriteLine(e.ToString());
        Console.WriteLine("Neither record was written to database.");
      }
      finally
      {
        bigQueryConnection.Close();
      }
    }
    Public Sub RunBigQueryTransaction(myConnString As String)
      Dim bigQueryConnection As New BigQueryConnection(myConnString)
      bigQueryConnection.Open()
    
      Dim bigQueryCommand As New BigQueryCommand()
      Dim myTrans As BigQueryTransaction
    
      ' Start a local transaction
      myTrans = bigQueryConnection.BeginTransaction()
      ' Assign transaction object for a pending local transaction
      bigQueryCommand.Transaction = myTrans
    
      Try
        bigQueryCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(50, 'DEVELOPMENT')"
        bigQueryCommand.ExecuteNonQuery()
        bigQueryCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(60, 'PRODUCTION')"
        bigQueryCommand.ExecuteNonQuery()
        myTrans.Commit()
        Console.WriteLine("Both records are written to database.")
      Catch e As Exception
        myTrans.Rollback()
        Console.WriteLine(e.ToString())
        Console.WriteLine("Neither record was written to database.")
      Finally
        bigQueryConnection.Close()
      End Try
    End Sub
    See Also

    Reference

    BigQueryTransaction Class
    BigQueryTransaction Members
    BeginTransaction Method
    Commit Method
    Devart.Data.BigQuery.BigQueryTransaction.Save(System.String)