Recent Posts

Tags

Community

Email Notifications

All Links

Blogs I Read

My Articles

JavaScript & CSS

Date & Time

SQL Server 2000/2005

Articles I Read

ASP.NET Free Controls

MVFP (Most Valuable Forum Posts)

Archives

Using SQL Transactions Properly

Today, I was creating a small tiny script to generate a set of acocunts to be placed in my Database at work. I thought that such a small script doesn't require creating Stored Procedures. So I thought of using simple scripts to execute. However, I had a requirement which was that, if one transaction failed, I must stop the execution of all other scripts executing. I remember I can use SqlTransactions inside my C# code, and not inside TSQL Stored Procedures. Make sure always, when you have a set of SQL queries to execute to use SqlTransaction. The code below works for both ASP.NET 1.x/2.0. 

using ( SqlConnection DbConnection = 
                new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                using (SqlCommand DbCommand = DbConnection.CreateCommand())
                {
                    SqlTransaction DbTransaction = null;
                    try
                    {
                        //Open connection required by BeginTransaction
                        DbConnection.Open();
                         // Begin the transaction
                        DbTransaction = DbConnection.BeginTransaction();
                         // Assign Transaction to Command
                        DbCommand.Transaction = DbTransaction;
 
                        // Execute Create User Command
                        DbCommand.CommandText = "INSERT INTO TableName(Name) VALUES ('Bilal Haidar')";
                        DbCommand.ExecuteNonQuery();
                         // Execute Get newly inserted User ID
                        DbCommand.CommandText = "SELECT MAX(UserID) FROM TableName";
                        int UserID = Convert.ToInt32(DbCommand.ExecuteScalar().ToString());
                         // If you reached this stage, commit transaction
                         DbTransaction.Commit();
                    }
                    catch
                    {
                        DbTransaction.Rollback();
                    }
              }
}

Regards

Posted: Nov 21 2005, 01:29 PM by simple | with no comments
Filed under:
Leave a Comment

(required) 

(required) 

(optional)

(required)