混合`using / try-catch-finally`

时间:2015-09-08 13:25:56

标签: c# oracle resources dispose odp.net

我在我的应用程序中使用Oracle.ManagedDataAccess.Client。以下是我处理释放/关闭资源/连接的方法:

OracleConnection conn = new OracleConnection(oradb);

try
{
    conn.Open();
    ...
    using (OracleCommand command = new OracleCommand(queryString, conn))
    {
        using (OracleDataReader reader = command.ExecuteReader(System.Data.CommandBehavior.SingleRow))
        {
                if (reader.Read())
                {
                    ...// reading data here
                }
        }
    }
}
catch (Exception e)
{
    // log error
}
finally
{
    conn.Close();
    conn.Dispose();
}

问题:

  1. 如上所示,我可以混合usingtry/catch吗?
  2. 显示Close methot的ODP.NET示例用于reader。正在调用usage(希望如此)的dispose也会关闭读者吗?
  3. 上述实施是否保证在大多数情况下关闭Oracle连接?

0 个答案:

没有答案