dotConnect for SQLite Documentation
Devart.Data.SQLite Namespace / SQLiteTransaction Class / Rollback Method
Example

Rollback Method (SQLiteTransaction)
Rolls back a database transaction from a pending state.
Syntax
'Declaration
 
Public Overrides Sub Rollback() 
 
Remarks
The Rollback method is equivalent to the SQL ROLLBACK statement. The transaction can only be rolled back from a pending state (after SQLiteConnection.BeginTransaction has been called, but before Commit is called).
Example
The following example creates a SQLiteConnection and a SQLiteTransaction. It also demonstrates how to use the SQLiteConnection.BeginTransaction, Commit, and Rollback methods.
public void RunSQLiteTransaction(string myConnString)
{
  SQLiteConnection sqConnection = new SQLiteConnection(myConnString);
  sqConnection.Open();

  SQLiteCommand sqCommand = new SQLiteCommand();
  SQLiteTransaction myTrans;

  // Start a local transaction
  myTrans = sqConnection.BeginTransaction();
  // Assign transaction object for a pending local transaction
  sqCommand.Transaction = myTrans;

  try
  {
    sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(50, 'DEVELOPMENT')";
    sqCommand.ExecuteNonQuery();
    sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(60, 'PRODUCTION')";
    sqCommand.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
  {
    sqConnection.Close();
  }
}
Public Sub RunSQLiteTransaction(myConnString As String)
  Dim sqConnection As New SQLiteConnection(myConnString)
  sqConnection.Open()

  Dim sqCommand As New SQLiteCommand()
  Dim myTrans As SQLiteTransaction

  ' Start a local transaction
  myTrans = sqConnection.BeginTransaction()
  ' Assign transaction object for a pending local transaction
  sqCommand.Transaction = myTrans

  Try
    sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(50, 'DEVELOPMENT')"
    sqCommand.ExecuteNonQuery()
    sqCommand.CommandText = "INSERT INTO Dept(DeptNo, DName) Values(60, 'PRODUCTION')"
    sqCommand.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
    sqConnection.Close()
  End Try
End Sub
See Also

Reference

SQLiteTransaction Class
SQLiteTransaction Members
BeginTransaction Method
Commit Method
Devart.Data.SQLite.SQLiteTransaction.Save(System.String)