Mega Code Archive

 
Categories / C# / ADO Database
 

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();     } }