次のように、usingステートメントをOracleConnectionでラップしてみてください。
try
{
using (OracleConnection conn = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
{
....
}
}
}
catch (OracleException e)
{
....
}
これにより、usingステートメント内でOracleExceptionが発生した場合でも、OracleConnectionオブジェクトができるだけ早く削除されます。