///<summary>
        ///</summary>
        ///<param name="connectionString"></param>
        ///<param name="commandText"></param>
        ///<returns></returns>
        ///<exception cref="ArgumentNullException"></exception>
        public static SqlParameter[] GetCachedParameterSet(string connectionString, string commandText)
        {
            if (connectionString == null || connectionString.Length == 0)
            {
                throw new ArgumentNullException("connectionString");
            }
            if (commandText == null || commandText.Length == 0)
            {
                throw new ArgumentNullException("commandText");
            }
            string key = connectionString + ":" + commandText;

            SqlParameter[] array = SqlHelperParameterCache.paramCache[key] as SqlParameter[];
            if (array == null)
            {
                return(null);
            }
            return(SqlHelperParameterCache.CloneParameters(array));
        }
        private static SqlParameter[] GetSpParameterSetInternal(SqlConnection connection, string spName, bool includeReturnValueParameter)
        {
            if (connection == null)
            {
                throw new ArgumentNullException("connection");
            }
            if (spName == null || spName.Length == 0)
            {
                throw new ArgumentNullException("spName");
            }
            string key = connection.ConnectionString + ":" + spName + (includeReturnValueParameter ? ":include ReturnValue Parameter" : "");

            SqlParameter[] array = SqlHelperParameterCache.paramCache[key] as SqlParameter[];
            if (array == null)
            {
                SqlParameter[] array2 = SqlHelperParameterCache.DiscoverSpParameterSet(connection, spName, includeReturnValueParameter);
                SqlHelperParameterCache.paramCache[key] = array2;
                array = array2;
            }
            return(SqlHelperParameterCache.CloneParameters(array));
        }