Mega Code Archive

 
Categories / C# / ADO Database
 

Illustrates the use of transactions

/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /*   Example23_4.cs illustrates the use of transactions */ using System; using System.Data; using System.Data.SqlClient; public class Example23_4 {   public static void Main()   {     // formulate a string containing the details of the     // database connection     string connectionString =       "server=localhost;database=Northwind;uid=sa;pwd=sa";     // create a SqlConnection object to connect to the     // database, passing the connection string to the constructor     SqlConnection mySqlConnection =       new SqlConnection(connectionString);     // open the database connection using the     // Open() method of the SqlConnection object     mySqlConnection.Open();     // step 1: create a SqlTransaction object and start the transaction     // by calling the BeginTransaction() method of the SqlConnection     // object     SqlTransaction mySqlTransaction =       mySqlConnection.BeginTransaction();     // step 2: create a SqlCommand object to hold a SQL statement     SqlCommand mySqlCommand = mySqlConnection.CreateCommand();     // step 3: set the Transaction property for the SqlCommand object     mySqlCommand.Transaction = mySqlTransaction;     // step 4: formulate a string containing the first INSERT statement     string insertString =       "INSERT INTO Customers (" +       "  CustomerID, CompanyName, ContactName, Address" +       ") VALUES (" +       "  'T2COM', 'T2 Company', 'Jason Price', '1 Main Street'" +       ")";     // step 5: set the CommandText property of the SqlCommand object to     // the INSERT string     mySqlCommand.CommandText = insertString;     // step 6: run the first INSERT statement     Console.WriteLine("Running first INSERT statement");     mySqlCommand.ExecuteNonQuery();     // step 7: formulate a second INSERT statement     insertString =       "INSERT INTO Orders (" +       "  CustomerID" +       ") VALUES (" +       "  'T2COM'" +       ")";     // step 8: set the CommandText property of the SqlCommand object to     // the second INSERT string     mySqlCommand.CommandText = insertString;     // step 9: run the second INSERT statement     Console.WriteLine("Running second INSERT statement");     mySqlCommand.ExecuteNonQuery();     // step 10: commit the transaction using the Commit() method     // of the SqlTransaction object     Console.WriteLine("Committing transaction");     mySqlTransaction.Commit();     // close the database connection using the Close() method     // of the SqlConnection object     mySqlConnection.Close();   } }