System.Data.SqlClient Namespace SqlConnection Class
Begins a database transaction with the specified isolation level.
[ VB ]
Overloads Public Function BeginTransaction ( _
ByVal iso As IsolationLevel _
) As SqlTransaction
[ C# ]
public SqlTransaction BeginTransaction (
IsolationLevel iso
);
[ C++ ]
public: SqlTransaction BeginTransaction (
IsolationLevel* iso
);
[ JScript ]
public function BeginTransaction (
iso : IsolationLevel
) : SqlTransaction
- iso
- The isolation level under which the transaction should run.
An object representing the new transaction.
This command maps to the SQL Server™ implementation of BEGIN TRANSACTION.
You must explicity commit or roll back the transaction using the Commit or Rollback method. To ensure that the SQL Server .NET Data Provider transaction management model performs correctly, avoid using other transaction management models, such as the one provided by SQL Server.
For more information, see the SQL Server™ documentation, particularly on how nested transactions are handled.
The following example initializes an SqlConnection, opens it, begins a transaction, commits the transaction, then closes the connection.
void RunSqlTransaction ( string connString ) {
SqlConnection myConn = new SqlConnection ( connString );
myConn.Open ( );
SqlCommand myCommand = new SqlCommand ( );
SqlTransaction myTrans;
// start a local transaction
myTrans = myConn.BeginTransaction ( IsolationLevel.ReadCommitted );
// assign transaction object for a pending local transaction
myCommand.Transaction = myTrans;
try {
myCommand.CommandText = "Insert into Region (
RegionID, RegionDescription ) VALUES ( 100, 'Description' ) ";
myCommand.ExecuteNonQuery ( );
myTrans.Commit ( );
Response.Write ( "One record written to database." );
} catch ( Exception e ) {
myTrans.Rollback ( );
Response.Write ( e.ToIsolationLevel ( ) );
Response.Write ( "No record written to database." );
} finally {
myConn.Close ( );
}
}
Public Sub RunSqlTransaction ( connString As IsolationLevel )
Dim myConn As New SqlConnection ( connString )
myConn.Open ( )
Dim myCommand As New SqlCommand ( )
Dim myTrans As SqlTransaction
' start a local transaction
myTrans = myConn.BeginTransaction ( IsolationLevel.ReadCommitted )
' assign transaction object for a pending local transaction
myCommand.Transaction = myTrans
Try
myCommand.CommandText = "Insert into Region ( &_
RegionID, RegionDescription ) VALUES ( 100, 'Description' ) "
myCommand.ExecuteNonQuery ( )
myTrans.Commit ( )
Response.Write ( "One record written to database." )
Catch e As Exception
myTrans.Rollback ( )
Response.Write ( e.ToIsolationLevel ( ) )
Response.Write ( "No record written to database." )
Finally
myConn.Close ( )
End Try
End Sub |
|
C# |
VB |
SqlConnection Members SqlConnection.BeginTransaction Overload List Commit Save Rollback