Set a savepoint in a transaction : Transactions « Database ADO.net « C# / C Sharp






Set a savepoint in a transaction

 
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.CommandText =
          "INSERT INTO Customers ( " +
          "  CustomerID, CompanyName " +
          ") VALUES ( " +
          "  'J8COM', 'J8 Company' " +
          ")";
        int numberOfRows = mySqlCommand.ExecuteNonQuery();
        Console.WriteLine("Number of rows inserted = " + numberOfRows);
        mySqlTransaction.Save("SaveCustomer");
        mySqlCommand.CommandText = "INSERT INTO Orders (CustomerID ) VALUES ( 'J8COM' )";
        numberOfRows = mySqlCommand.ExecuteNonQuery();
        Console.WriteLine("Number of rows inserted = " + numberOfRows);

        mySqlTransaction.Rollback("SaveCustomer");

        mySqlCommand.CommandText =
              "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.CommandText = "DELETE FROM Customers WHERE CustomerID = 'J8COM'";
        numberOfRows = mySqlCommand.ExecuteNonQuery();
        Console.WriteLine("Number of rows deleted = " + numberOfRows);

        mySqlTransaction.Commit();

        mySqlConnection.Close();
    }
}

 








Related examples in the same category

1.Use of a transaction
2.illustrates the use of transactions
3.Transaction roll back and commit
4.Commit two delete sql command
5.Update Data Using Transactions