Csharp/C Sharp by API/System.Data.SqlClient/SqlTransaction

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

SqlTransaction.Rollback

<source lang="csharp">

using System; using System.Data; using System.Data.SqlClient; class Savepoint {

   public static void Main() {
       SqlConnection mySqlConnection =
         new SqlConnection(
           "server=localhost;database=Northwind;uid=sa;pwd=sa"
         );
       mySqlConnection.Open();
       SqlTransaction mySqlTransaction = mySqlConnection.BeginTransaction();
       SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
       mySqlCommand.Transaction = mySqlTransaction;
       mySqlCommand.rumandText =
         "INSERT INTO Customers ( " +
         "  CustomerID, CompanyName " +
         ") VALUES ( " +
         "  "J8COM", "J8 Company" " +
         ")";
       int numberOfRows = mySqlCommand.ExecuteNonQuery();
       Console.WriteLine("Number of rows inserted = " + numberOfRows);
       mySqlTransaction.Save("SaveCustomer");
       mySqlCommand.rumandText = "INSERT INTO Orders (CustomerID ) VALUES ( "J8COM" )";
       numberOfRows = mySqlCommand.ExecuteNonQuery();
       Console.WriteLine("Number of rows inserted = " + numberOfRows);
       mySqlTransaction.Rollback("SaveCustomer");
       mySqlCommand.rumandText =
             "SELECT CustomerID, CompanyName " +
             "FROM Customers " +
             "WHERE CustomerID = "J8COM"";
       SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
       while (mySqlDataReader.Read()) {
           Console.WriteLine("mySqlDataReader[\" CustomerID\"] = " +
             mySqlDataReader["CustomerID"]);
           Console.WriteLine("mySqlDataReader[\" CompanyName\"] = " +
             mySqlDataReader["CompanyName"]);
       }
       mySqlDataReader.Close();
       mySqlCommand.rumandText = "DELETE FROM Customers WHERE CustomerID = "J8COM"";
       numberOfRows = mySqlCommand.ExecuteNonQuery();
       Console.WriteLine("Number of rows deleted = " + numberOfRows);
       mySqlTransaction.rumit();
       mySqlConnection.Close();
   }

}

 </source>