예제 #1
0
        public DataTable ConsultaEmDataTable(string stringSQL, HydraParameters parametros = null)
        {
            DataTable     dataTable     = new DataTable();
            SqlConnection sqlConnection = new SqlConnection();

            try
            {
                sqlConnection = AbrirBanco();

                using (SqlCommand comando = new SqlCommand(stringSQL, sqlConnection))
                {
                    Popula.Parametros(parametros, comando, false);

                    using (SqlDataReader dadosTabela = comando.ExecuteReader())
                    {
                        dataTable = Popula.DataTable(dadosTabela);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FecharBanco(sqlConnection);
            }

            return(dataTable);
        }
예제 #2
0
        public List <HydraTuple <T1, T2> > ConsultaLista <T1, T2>(string stringSQL, HydraParameters parametros = null)
        {
            List <HydraTuple <T1, T2> > lista = new List <HydraTuple <T1, T2> >();
            SqlConnection sqlConnection       = new SqlConnection();

            try
            {
                sqlConnection = AbrirBanco();

                using (SqlCommand comando = new SqlCommand(stringSQL, sqlConnection))
                {
                    Popula.Parametros(parametros, comando, false);

                    using (SqlDataReader dadosTabela = comando.ExecuteReader())
                    {
                        lista = Popula.ListaDuasTuple <T1, T2>(dadosTabela);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FecharBanco(sqlConnection);
            }

            return(lista);
        }
예제 #3
0
        public bool Consulta(string stringSQL, HydraParameters parametros)
        {
            bool          retorno       = false;
            SqlConnection sqlConnection = new SqlConnection();

            try
            {
                sqlConnection = AbrirBanco();

                using (SqlCommand comando = new SqlCommand(stringSQL, sqlConnection))
                {
                    Popula.Parametros(parametros, comando, false);

                    comando.ExecuteReader();
                }

                retorno = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FecharBanco(sqlConnection);
            }

            return(retorno);
        }
예제 #4
0
        /// <summary>Executa uma consulta personalizada no banco de dados. <br></br>Retorna a consulta convertida em uma lista da classe designada.</summary>
        /// <param name="queryString">String da consulta a ser feita</param>
        /// <param name="parameters">Paramêtros a serem usados na consulta</param>
        public T ReturnQuerySingle <T>(string queryString, HydraParameters parameters = null)
        {
            DataTable dataTable = BaseHydra.ConsultaEmDataTable(queryString, parameters);

            var entidade = BaseHydra.ConverteDataTableEmEntidade <T>(dataTable);

            return(entidade);
        }
예제 #5
0
        /// <summary>Executa uma consulta personalizada no banco de dados. <br></br>Retorna a consulta convertida em uma lista da classe designada.</summary>
        /// <param name="queryString">String da consulta a ser feita</param>
        /// <param name="parameters">Paramêtros a serem usados na consulta</param>
        public List <T> ReturnQuery <T>(string queryString, HydraParameters parameters = null)
        {
            DataTable dataTable = BaseHydra.ConsultaEmDataTable(queryString, parameters);

            var lista = BaseHydra.ConverteDataTableEmLista <T>(dataTable);

            return(lista);
        }
예제 #6
0
        /// <summary>Carrega uma tabela do banco de dados, convertendo a classe na tabela desejada. <br></br>Retorna a tabela convertida em uma entidade da mesma classe.</summary>
        /// <param name="top">Define limite de linhas do Select</param>
        /// <param name="columns">Define colunas a serem selecionadas</param>
        /// <param name="condition">Inclusão de condições extras, como por exemplo: WHERE, GROUP BY, HAVING e ORDER BY</param>
        public T LoadSingle <T>(string columns = "*", string condition = "", HydraParameters parameters = null) where T : new()
        {
            string comandoSQL;

            Tipo = typeof(T);

            Manipula.Consulta(out comandoSQL, Tipo, TipoConsulta.Select, 1, columns, condicoes: condition);

            var entidade = BaseHydra.ConsultaEntidade <T>(comandoSQL, columns, parameters);

            return(entidade);
        }
예제 #7
0
        public bool Delete(object entidade)
        {
            string stringConsulta = "";
            bool   retorno        = false;

            Type            tipo            = entidade.GetType();
            HydraParameters hydraParametros = new HydraParameters();

            PropertyInfo PK = tipo.GetProperties().Where(x => Valida.PrimaryKey(x) != null).FirstOrDefault();
            Dictionary <PropriedadePK, object> propriedadesPK = Carrega.InfoPrimaryKey(entidade, tipo, PK, hydraParametros);

            if (propriedadesPK != null)
            {
                string valorPK = propriedadesPK[PropriedadePK.Valor].ToString();
                string nomePK  = propriedadesPK[PropriedadePK.Nome].ToString();

                stringConsulta = Manipula.Delete(tipo, nomePK, valorPK);

                SqlConnection sqlConnection = new SqlConnection();

                try
                {
                    sqlConnection = AbrirBanco();

                    using (SqlCommand comando = new SqlCommand(stringConsulta, sqlConnection))
                    {
                        using (SqlDataReader dadosTabela = comando.ExecuteReader())
                        {
                            retorno = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    FecharBanco(sqlConnection);
                }
            }
            else
            {
                retorno = false;
            }

            return(retorno);
        }
예제 #8
0
        public T ConsultaEntidade <T>(string stringSQL, string columns = "", HydraParameters parametros = null)
        {
            T             entidade;
            SqlConnection sqlConnection = new SqlConnection();

            try
            {
                sqlConnection = AbrirBanco();

                using (SqlCommand comando = new SqlCommand(stringSQL, sqlConnection))
                {
                    Popula.Parametros(parametros, comando, false);

                    using (SqlDataReader dadosTabela = comando.ExecuteReader())
                    {
                        List <string> colunas = null;

                        if (columns != "")
                        {
                            colunas = columns.Split(',').ToList();
                        }

                        entidade = Popula.Entidade <T>(dadosTabela, colunas);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FecharBanco(sqlConnection);
            }

            return(entidade);
        }
예제 #9
0
        /// <summary>Executa uma consulta personalizada no banco de dados.<br></br>Caso seja realizado com sucesso é retornado um boolean com valor true.</summary>
        /// <param name="queryString">String da consulta a ser feita</param>
        /// <param name="parameters">Paramêtros a serem usados na consulta</param>
        public bool ExecuteQuery(string queryString, HydraParameters parametros = null)
        {
            bool resultado = BaseHydra.Consulta(queryString, parametros);

            return(resultado);
        }
예제 #10
0
        /// <summary>Carrega uma tabela do banco de dados, convertendo a classe na tabela desejada. <br></br>Retorna a tabela convertida em uma lista da mesma classe.</summary>
        /// <param name="top">Define limite de linhas do Select</param>
        /// <param name="columns">Define colunas a serem selecionadas, usando uma ',' para serapar cada coluna</param>
        /// <param name="condition">Inclusão de condições extras, como por exemplo: WHERE, GROUP BY, HAVING e ORDER BY</param>
        /// <param name="parameters">Paramêtros a serem usados na consulta</param>
        public List <T> Load <T>(int?top = null, string columns = "*", string condition = "", HydraParameters parameters = null)
        {
            string comandoSQL;

            Tipo = typeof(T);

            Manipula.Consulta(out comandoSQL, Tipo, TipoConsulta.Select, top, columns, condicoes: condition);

            var lista = BaseHydra.ConsultaLista <T>(comandoSQL, columns, parameters);

            return(lista);
        }
예제 #11
0
        /// <summary>Carrega uma tabela do banco de dados, convertendo a classe na tabela desejada. <br></br>Retorna um DataTable.</summary>
        /// <param name="top">Define limite de linhas do Select</param>
        /// <param name="columns">Define colunas a serem selecionadas</param>
        /// <param name="condition">Inclusão de condições extras, como por exemplo: WHERE, GROUP BY, HAVING e ORDER BY</param>
        public DataTable LoadFromDataTable(string queryString, HydraParameters parameters = null)
        {
            var dataTable = BaseHydra.ConsultaEmDataTable(queryString, parameters);

            return(dataTable);
        }
예제 #12
0
        /// <summary>Executa uma consulta personalizada no banco de dados. <br></br>Retorna a consulta convertida em uma tupla de 3 itens</summary>
        /// <param name="queryString">String da consulta a ser feita</param>
        /// <param name="parameters">Paramêtros a serem usados na consulta</param>
        public List <HydraTuple <T1, T2, T3> > ReturnQuery <T1, T2, T3>(string queryString, HydraParameters parameters = null)
        {
            var lista = BaseHydra.ConsultaLista <T1, T2, T3>(queryString, parameters);

            return(lista);
        }
예제 #13
0
        public object Save(object entidade)
        {
            string stringConsulta = "";
            bool   pkIdentidade   = false;
            bool   novoItem;

            Type            tipo            = entidade.GetType();
            HydraParameters hydraParametros = new HydraParameters();

            PropertyInfo PK = tipo.GetProperties().Where(x => Valida.PrimaryKey(x) != null).FirstOrDefault();

            PropertyInfo[] colunas = tipo.GetProperties().Where(x => Valida.Coluna(x) != null).ToArray();
            Dictionary <PropriedadePK, object> propriedadesPK = Carrega.InfoPrimaryKey(entidade, tipo, PK, hydraParametros);
            List <string> NomeColunas = Carrega.Parametros(entidade, tipo, hydraParametros, colunas);

            SqlConnection sqlConnection = new SqlConnection();
            SqlCommand    comando       = new SqlCommand();
            SqlDataReader dadosTabela;

            if (propriedadesPK != null)
            {
                string valorPK = propriedadesPK[PropriedadePK.Valor].ToString();
                string nomePK  = propriedadesPK[PropriedadePK.Nome].ToString();
                pkIdentidade = bool.Parse(propriedadesPK[PropriedadePK.Identidade].ToString());

                string consultaObjeto = "";
                Manipula.Consulta(out consultaObjeto, tipo, TipoConsulta.Select, 1, nomePK, condicoes: $"WHERE {nomePK} = {valorPK}");

                try
                {
                    sqlConnection = AbrirBanco();

                    using (comando = new SqlCommand(consultaObjeto, sqlConnection))
                    {
                        using (dadosTabela = comando.ExecuteReader())
                        {
                            if (dadosTabela.Read())
                            {
                                novoItem = false;
                            }
                            else
                            {
                                novoItem = true;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    FecharBanco(sqlConnection);
                    throw ex;
                }

                if (novoItem == true)
                {
                    if (pkIdentidade == true)
                    {
                        stringConsulta = Insert(tipo, NomeColunas, nomePK);
                    }
                    else
                    {
                        stringConsulta = Insert(tipo, NomeColunas, nomePK, false);
                    }
                }
                else
                {
                    if (pkIdentidade == true)
                    {
                        stringConsulta = Update(tipo, NomeColunas, nomePK, valorPK);
                    }
                    else
                    {
                        stringConsulta = Update(tipo, NomeColunas, nomePK, valorPK, false);
                    }
                }

                try
                {
                    using (comando = new SqlCommand(stringConsulta, sqlConnection))
                    {
                        Popula.Parametros(hydraParametros, comando, pkIdentidade);

                        using (dadosTabela = comando.ExecuteReader())
                        {
                            Popula.Objeto(dadosTabela, entidade, tipo);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    FecharBanco(sqlConnection);
                }
            }
            else
            {
                entidade = new object();
            }

            return(entidade);
        }
예제 #14
0
        public List <object> ConsultaLista(object entidade, string stringSQL, string columns = "", HydraParameters parametros = null)
        {
            List <object> lista         = new List <object>();
            SqlConnection sqlConnection = new SqlConnection();
            Type          tipo          = entidade.GetType();

            try
            {
                sqlConnection = AbrirBanco();

                using (SqlCommand comando = new SqlCommand(stringSQL, sqlConnection))
                {
                    Popula.Parametros(parametros, comando, false);

                    using (SqlDataReader dadosTabela = comando.ExecuteReader())
                    {
                        List <string> colunas = null;

                        if (columns != "")
                        {
                            colunas = columns.Split(',').ToList();
                        }

                        lista = Popula.ListaObjeto(dadosTabela, entidade, tipo, colunas);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                FecharBanco(sqlConnection);
            }

            return(lista);
        }