Это достаточно хорошо. оператор using обернет оператор dispose, поэтому, даже если выдается исключение, вы в безопасности, это мой предпочтительный способ избавиться от ресурса.
using(OracleConnection connection = new OracleConnection(connectionString); )
{
//Create a command object
using(OracleCommand command = new OracleCommand(sql, connection))
{
using(OracleDataReader reader = cmd.ExecuteReader())
{
}
}
// whatever...
}
Я думаю, что используя "using", вы просите компилятор ввести блок try ... finally, и в блоке finally он закроет для вас одноразовый объект.