This is a very high level example of using transactions with ADO.NET objects in C#. Please refer the inline comments for instructions.
private void TransactionExample()
{
SqlTransaction transaction = null;
SqlConnection con = null;
// they will be used to decide whether to commit or rollback the transaction
bool query1 = false;
bool query2 = false;
try
{
con = new SqlConnection(CONNECTION_STRING);
con.Open();
// begin the transaction
transaction = con.BeginTransaction();
// Run some queries in DB
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = " your query"
// assosiate this command with transaction
cmd.Transaction = transaction;
query1 = cmd.ExecuteNonQuery() == 1;
}
// Uncomment the line below to test if transaction works
// throw new Exception("Transaction test!");
// Run more queries
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = " your query" ;
// assosiate this command with transaction
cmd.Transaction = transaction;
query2 = cmd.ExecuteNonQuery() == 1;
}
if (query1 & amp; & query2)
{
// Commit transaction because both queries run successfully
transaction.Commit();
}
}
catch
{
// Don't run queries in DB because there is an error
transaction.Rollback();
}
finally
{
con.Close();
}
}
For more details, check this great article out!
