Reputation: 2246
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
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