public bool Update(Kid updateKid) { bool updateSuccessful; if (updateKid == null || !updateKid.IsValidUpdate()) throw new ArgumentException(); var cmd = DBUtility.SqlCommand("Kid_Update"); SqlTransaction transaction; // Start a local transaction. transaction = cmd.Connection.BeginTransaction(IsolationLevel.ReadCommitted, "XKid_Update"); cmd.Transaction = transaction; try { cmd.Parameters.Add("@KidID", SqlDbType.Int); cmd.Parameters.Add("@Name", SqlDbType.Text, 50); cmd.Parameters.Add("@Email", SqlDbType.Text, 150); cmd.Parameters["@KidID"].Value = updateKid.KidID; cmd.Parameters["@Name"].Value = updateKid.Name; cmd.Parameters["@Email"].Value = updateKid.Email; int returnValue = cmd.ExecuteNonQuery(); transaction.Commit(); if (returnValue < 0) { throw new Exception("Error Text Added to the Database: " + returnValue.ToString()); } else { updateSuccessful = true; } } catch (Exception e) { try { transaction.Rollback(); } catch (SqlException ex) { if (transaction.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() + " was encountered while attempting to roll back the transaction."); } } Console.WriteLine("An exception of type " + e.GetType() + " was encountered while inserting the data."); Console.WriteLine("Neither record was written to database."); updateSuccessful = false; } return updateSuccessful; }