[ Team LiB ] Previous Section Next Section

31.3 Methods Reference

Begin [OLE DB only]

Transaction nestTran = Transaction.Begin();
Transaction nestTran = Transaction.Begin(IsolationLevel il);

Starts a nested database transaction.

Parameters

nestTran

Returns a reference to the nested database transaction.

il

The isolation level to use for the new transaction.

Example

This example demonstrates how to start a nested transaction using the Begin method:

String connString = "Data Source=(local);Integrated security=SSPI;" + 
    "Initial Catalog=Northwind;";

OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
OleDbTransaction tran = conn.BeginTransaction();

// start a nested transaction
OleDbTransaction nestTran = tran.Begin();

Notes

This method is available only in the OLE DB .NET data provider.

An InvalidOperationException is raised if the data source doesn't support nested transactions.

Commit

Transaction.Commit();

Commits the database transaction.

Parameters

None.

Example

The following example demonstrates how to start a transaction and either commit the transaction or roll the transaction back, depending on the outcome of commands executed against the data source:

String connString = "Data Source=(local);Integrated security=SSPI;" + 
    "Initial Catalog=Northwind;";

SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
try
{
    // ... execute some commands against the data source
    tran.Commit();
}
catch (Exception e)
{
    tran.Rollback();
}
finally
{
    conn.Close();
}
Rollback

Transaction.Rollback();
Transaction.Rollback(String savePointName);

Rolls back a transaction from a pending state. A savepoint can optionally be specified as the point to roll the transaction back to with the SQL Server .NET data provider.

Parameters

None.

Example

See the Example for the Commit( ) method in this chapter.

Note

The overloaded Rollback( ) method with the savepoint name argument is available only in the SQL Server .NET data provider.

Save [SQL Server only]

void = Transaction.Save(String savePointName);

Creates a savepoint in the transaction that can roll back a portion of the transaction.

Parameters

None.

Example

The following example demonstrates how to create and use a savepoint to partially roll back a transaction:

String connString = "Data Source=(local);Integrated security=SSPI;" + 
    "Initial Catalog=Northwind;";

SqlConnection conn = new SqlConnection(connString);
conn.Open();

SqlTransaction tran = conn.BeginTransaction();

try
{
    // ... execute some commands against the data source
}
catch (Exception ex)
{
    // roll back the transaction, close the connection, and leave
    tran.Rollback();
    conn.Close();

    return;
}

// create a save point called SavePoint1
tran.Save("SavePoint1");

try
{
    // ... execute some commands against the data source
    tran.Commit();
}
catch (SqlException ex)
{
    // roll back the transaction to the save point
    tran.Rollback("SavePoint1");
    // commit all processing up to the save point
    tran.Commit();
}
finally
{
    conn.Close();
}

Note

This method is available only in the SQL Server .NET data provider.

    [ Team LiB ] Previous Section Next Section