Я хотел спросить, что является обычным способом использования соединений с базой данных и их закрытия.Убедитесь, что соединение закрыто
Это моя программа, но я вижу в exeption, connection.Close() не будет выполняться.
Должен ли я использовать try-catch для всего блока? потому что по какой-то причине я вижу, что большинство людей этого не делает.
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand command = new SqlCommand())
{
command.CommandText = "procedure";
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
tmpParameter = DBUtils.createInSQLParam("@ImageID", SqlDbType.SmallInt, htmlImageId);
command.Parameters.Add(tmpParameter);
command.Connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
htmlImageDetails = GetHtmlImageDetailsFromReader(reader, true, out newId);
reader.Close();
}
connection.Close();
return htmlImageDetails;
}
}
Какое исключение вы видите? –
Это похоже на ваш вопрос - http://stackoverflow.com/a/4717802/978528. – nickfinity
Закрытие не требуется при использовании «использования» соединений/считывателей автоматически закрываются. .net использует пул соединений по умолчанию, поэтому соединение не закрывается, если вы его размещаете, оно помещается в пул для повторного использования (это улучшает производительность в большинстве случаев). – Peter