public DataTable EjecutarProcedimiento(string NombreConexion)
        {
            string        NombreConexionString = ConfigurationManager.ConnectionStrings[NombreConexion].ConnectionString;
            SqlConnection SqlConect            = new SqlConnection(NombreConexionString);
            SqlCommand    SqlComando           = new SqlCommand(Nombre, SqlConect);

            SqlComando.CommandTimeout = 200;
            SqlDataReader Reader = default(SqlDataReader);
            DataTable     Tabla  = new DataTable();

            SqlComando.CommandType = CommandType.StoredProcedure;

            StoredProcedureParameter TodosParametros = null;

            foreach (StoredProcedureParameter TodosParametros_loopVariable in this.Parametros)
            {
                TodosParametros = TodosParametros_loopVariable;
                SqlParameter NuevoParametro = new SqlParameter(TodosParametros.Parametro, TodosParametros.Valor)
                {
                    Direction = ParameterDirection.Input
                };
                SqlComando.Parameters.Add(NuevoParametro);
            }
            try
            {
                SqlConect.Open();
                Reader = SqlComando.ExecuteReader(CommandBehavior.CloseConnection);
                Tabla.Load(Reader);
            }
            catch (Exception ex)
            {
                string error = ex.ToString().ToUpper();

                if (error.Contains("ERROR NUMBER:18456") || error.Contains("ERROR NUMBER:4060") || error.Contains("ERROR NUMBER:-1"))
                {
                    throw new Exception("DBConnection");
                }
            }
            finally
            {
                SqlConect.Close();
            }
            return(Tabla);
        }
        /// <summary>
        /// Procedimiento que añade informacion de los parametros en un arreglo.
        /// </summary>
        /// <param name="nomParametro">Nombre del parametro</param>
        /// <param name="valParametro">Valor del parametro</param>
        /// <remarks></remarks>
        public void AgregarParametro(string nomParametro, object valParametro)
        {
            StoredProcedureParameter parametro = new StoredProcedureParameter("@" + nomParametro, valParametro);

            this.Parametros.Add(parametro);
        }
        /// <summary>
        /// Procedimiento que añade informacion de los parametros de salida en un arreglo.
        /// </summary>
        /// <param name="nomParametro">Nombre del parametro</param>
        /// <param name="tipoParametro">Tipo de parametro</param>
        /// <param name="tamano">Tamano del parametro en el SP</param>
        /// <remarks></remarks>
        public void AgregarParametroSalida(string nomParametro, object tipoParametro, int tamano)
        {
            StoredProcedureParameter parametro = new StoredProcedureParameter("@" + nomParametro, tipoParametro, tamano);

            this.ParametroSalida.Add(parametro);
        }