// Finds the index of a parameter by name, regardless of whether 'parameterName' or the matching
        // MySqlParameter.ParameterName has a leading '?' or '@'.
        internal int FlexibleIndexOf(string parameterName)
        {
            if (parameterName == null)
            {
                throw new ArgumentNullException(nameof(parameterName));
            }
            int index;

            return(m_nameToIndex.TryGetValue(MySqlParameter.NormalizeParameterName(parameterName), out index) ? index : -1);
        }
        public override int IndexOf(string parameterName)
        {
            if (parameterName == null)
            {
                throw new ArgumentNullException(nameof(parameterName));
            }
            int index;

            return(m_nameToIndex.TryGetValue(MySqlParameter.NormalizeParameterName(parameterName), out index) &&
                   string.Equals(parameterName, m_parameters[index].ParameterName, StringComparison.OrdinalIgnoreCase) ? index : -1);
        }