Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note: This namespace, class, or member is supported only in version 1.1 of the .NET Framework.
Rolls back a transaction from a pending state.
[Visual Basic] Public Overridable Sub Rollback() Implements _ IDbTransaction.Rollback [C#] public virtual void Rollback(); [C++] public: virtual void Rollback(); [JScript] public function Rollback();
Implements
Exceptions
| Exception Type | Condition |
|---|---|
| Exception | An error occured while trying to commit the transaction. |
| InvalidOperationException | The transaction has already been committed or rolled back.
-or- The connection is broken. |
Remarks
The transaction can only be rolled back from a pending state (after BeginTransaction has been called, but before Commit is called).
Example
[Visual Basic, C#] The following example creates a SqlCeConnection and a SqlCeTransaction. It also demonstrates how to use the BeginTransaction, a Commit, and Rollback methods.
[Visual Basic]
Public Sub RunSqlCeTransaction(myConnString As String)
Dim myConnection As New SqlCeConnection(myConnString)
myConnection.Open()
Dim myCommand As New SqlCeCommand()
Dim myTrans As SqlCeTransaction
' Start a local transaction
myTrans = myConnection.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction
myCommand.Connection = myConnection
myCommand.Transaction = myTrans
Try
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
myCommand.ExecuteNonQuery()
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
myCommand.ExecuteNonQuery()
myTrans.Commit()
Catch
Try
myTrans.Rollback()
Catch e As SqlCeException
' Handle possible exception here
End Try
Finally
myConnection.Close()
End Try
End Sub
[C#]
public void RunSqlCeTransaction(string myConnString) {
SqlCeConnection myConnection = new SqlCeConnection(myConnString);
myConnection.Open();
SqlCeCommand myCommand = new SqlCeCommand();
SqlCeTransaction myTrans;
// Start a local transaction
myTrans = myConnection.BeginTransaction();
// Must assign both transaction object and connection
// to Command object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;
try {
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
}
catch(Exception) {
try {
myTrans.Rollback();
}
catch (SqlCeException) {
// Handle possible exception here
}
}
finally {
myConnection.Close();
}
}
[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: .NET Compact Framework
.NET Framework Security:
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries From Partially Trusted Code
See Also
SqlCeTransaction Class | SqlCeTransaction Members | System.Data.SqlServerCe Namespace | Commit | BeginTransaction
Syntax based on .NET Framework version 1.1.
Documentation version 1.1.1.