James
James

Reputation: 2246

Is it properly closing connection from ASP.Net to SQL SERVER

Is the below piece of code closing the connection properly..

public static bool Hello(string sqlQuery)
        {
            SqlDataReader dataReader = null;
            var isExist = false;

            using (var aeConnection = new SqlConnection(ConnectionString))
            {
                try
                {
                    var aeCommand = new SqlCommand(sqlQuery, aeConnection)
                        {
                            CommandType = CommandType.Text
                        };

                    aeConnection.Open();
                    dataReader = aeCommand.ExecuteReader(CommandBehavior.Default);

                    while (dataReader.Read())
                    {
                       int vinCount;
                        int.TryParse(dataReader["VINCount"].ToString(), out vinCount);

                        if (vinCount == 0)
                        {
                          isExist = true;
                         }
                    }
                }
                catch (Exception ex)
                {
                   if (dataReader != null)
                   {
                       dataReader.Close();
                   }
                }
            }

            return isExist;
        }

Upvotes: 0

Views: 425

Answers (1)

Pawan
Pawan

Reputation: 1075

Yes it is properly closing connection.When the using block is exited (either by successful completion or by error) it is closed.

The using statement gets compiled into a try/finally block

using (var aeConnection = new SqlConnection(ConnectionString))
            {
}

It will treated as

SqlConnection aeConnection = null;
try
{
    aeConnection  = new SqlConnection(ConnectionString);
}
finally
{
   if(aeConnection!= null)
        ((IDisposable)aeConnection).Dispose();
}

Upvotes: 1

Related Questions