【发布时间】:2011-10-21 18:28:53
【问题描述】:
我已经将 OracleConnection 和 OracleCommand 对象包装在 USING 语句中已有一段时间了,但是,在运行代码分析器之后,我发现 OracleParameter 也实现了 IDisposable。下面的代码是否正确?是否有更好的可读性或结构技术?乍一看,它似乎只是杂乱无章的 USING 语句:
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...
}
}
}
【问题讨论】:
标签: c# coding-style idisposable using