Suppose you are developing a banking application that debits and credits two different accounts at the same time. Suppose your query manages to update the account to be debited but fails to update the account to be credited, the bank would lose money that was supposed to be credited to the other account. This is when transaction processing comes in handy. In a nutshell, transaction processing is ensuring that all tables to be affected by the queries are updated. If any of the queries fail, then the changes made in the other tables will be rolled back and leave data the way it was before updating. Ado.Net supports transaction processing for most database engines that support it such as Microsoft SQL Server, MySQL etc. The diagram below illustrates how transactions work. ado.net transaction processing For a practical tutorial on the implementation transaction processing in C#, visit the URL below. Feel free to ask questions via the comments section if you are stuck with the practical tutorial or you would like some clarifications.

C# Transaction Processing Practical Tutorial