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