Od pewnego czasu pakuję obiekty OracleConnection i OracleCommand w instrukcje USING, jednak po uruchomieniu analizatora kodu odkryłem, że OracleParameter również implementuje IDisposable. Czy poniższy kod jest prawidłowy? Czy istnieje lepsza technika czytelności lub struktury? Na pierwszy rzut oka wydaje się być zagraconym za pomocą instrukcji USING:C# IDisposable Using: Best Practice
using (OracleConnection conn = new OracleConnection(connectionstring))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand(sql, conn))
{
cmd.BindByName = true;
using (OracleParameter param1 = new OracleParameter("p1", OracleDbType.Int32, System.Data.ParameterDirection.Input))
{
param1.Value = int.Parse(value1);
cmd.Parameters.Add(param1);
}
using (OracleParameter param2 = new OracleParameter("p2", OracleDbType.Varchar2, System.Data.ParameterDirection.Input))
{
param2.Value = value2;
cmd.Parameters.Add(param2);
}
using (OracleDataReader dr = cmd.ExecuteReader())
{
// loop data here...
}
}
}
Chociaż było wiele podobnych odpowiedzi, doceniam, że dostarczyłeś zarówno przykłady, jak i komentarze. – Shawn
Dzięki! Cieszę się, że mogę pomóc. :-) –