次の方法で共有


SqlCeTransaction.Rollback メソッド

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

トランザクションを保留中の状態からロールバックします。

Public Overridable Sub Rollback() Implements _
   IDbTransaction.Rollback
[C#]
public virtual void Rollback();
[C++]
public: virtual void Rollback();
[JScript]
public function Rollback();

実装

IDbTransaction.Rollback

例外

例外の種類 条件
Exception トランザクションのコミット中にエラーが発生しました。
InvalidOperationException トランザクションは既にコミットまたはロールバックされています。

または

接続が切断されています。

解説

トランザクションは、保留中の状態 (BeginTransaction の呼び出し後、 Commit の呼び出し前) だけからロールバックできます。

使用例

[Visual Basic, C#] SqlCeConnection および SqlCeTransaction を作成する例を次に示します。この例では、 BeginTransactionCommit 、Rollback の各メソッドの使い方も示します。

 
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] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: .NET Compact Framework - Windows CE .NET

.NET Framework セキュリティ:

参照

SqlCeTransaction クラス | SqlCeTransaction メンバ | System.Data.SqlServerCe 名前空間 | Commit | BeginTransaction