Tôi đã gói các đối tượng OracleConnection và OracleCommand của mình trong các câu lệnh USING trong một thời gian, tuy nhiên, sau khi chạy trình phân tích mã, tôi khám phá ra rằng OracleParameter cũng triển khai IDisposable. Mã sau có chính xác không? Có một kỹ thuật tốt hơn cho khả năng đọc hoặc cấu trúc? Thoạt nhìn, nó dường như có vẻ lộn xộn với các câu lệnh USING:C# IDisposable Sử dụng: Thực hành tốt nhất
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...
}
}
}
Mặc dù có nhiều câu trả lời tương tự, tôi đánh giá cao rằng bạn đã cung cấp cả ví dụ và bình luận. – Shawn
Cảm ơn! Vui vì tôi có thể giúp đỡ. :-) –