示例#1
0
        //Método responsável por retornar um Filme com todos os seus diretores cujo ID seja igual o passado pelo parâmetro.
        public Filme getOne(int id)
        {
            try
            {
                bd.OpenConnection();

                String query             = "SELECT * FROM tab_filme WHERE cod_filme = :id";
                Npgsql.NpgsqlCommand sql = new Npgsql.NpgsqlCommand(query, bd.getConnection);

                sql.Parameters.Add(new NpgsqlParameter("id", NpgsqlTypes.NpgsqlDbType.Integer));
                sql.Prepare();

                sql.Parameters[0].Value = id;

                NpgsqlDataReader dr = sql.ExecuteReader();

                CategoriaDAO cdao = new CategoriaDAO();

                while (dr.Read())
                {
                    Filme f = new Filme();
                    f.Cod_filme  = dr.GetInt32(0);
                    f.Nome_filme = dr.GetString(1);
                    f.Data       = dr.GetDateTime(2);

                    //Como a classe filme tem um atributo do tipo Objeto Categoria,
                    //utilizo a instancia de CategoriaDAO pra pegar o objeto a partir do ID que o banco me retorna, com esse ID passo pro
                    //método getOne que retorna um Objeto do tipo Categoria.
                    f.Categoria = cdao.getOne(3);

                    //É utilizado o método getDiretores que retorna toda lista de diretores do filme para fazer a atribuição.
                    f.Diretores = this.getDiretores(f.Cod_filme);

                    return(f);
                }
            }
            catch (NpgsqlException e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                bd.CloseConnection();
            }

            return(null);
        }
示例#2
0
        //Método responsável por retornar todos os filmes e seus diretores fazendo um cast para objeto, retornando uma lista com todos os filmes do banco.
        public List <Filme> getAll()
        {
            List <Filme> retorno = new List <Filme>();

            try
            {
                bd.OpenConnection();

                String query             = "SELECT * FROM tab_filme";
                Npgsql.NpgsqlCommand sql = new Npgsql.NpgsqlCommand(query, bd.getConnection);
                sql.Prepare();

                NpgsqlDataReader dr = sql.ExecuteReader();

                CategoriaDAO cdao = new CategoriaDAO();

                //Esse trecho é executado pra cada filme.
                while (dr.Read())
                {
                    Filme f = new Filme();
                    f.Cod_filme  = dr.GetInt32(0);
                    f.Nome_filme = dr.GetString(1);
                    f.Data       = dr.GetDateTime(2);

                    //Como a classe filme tem um atributo do tipo Objeto Categoria,
                    //é utilizada a instancia de CategoriaDAO pra pegar o objeto a partir do ID que o banco retorna, esse ID é passado para o
                    //método getOne que retorna um Objeto do tipo Categoria.
                    f.Categoria = cdao.getOne(3);

                    //É utilizado método getDiretores que retorna toda lista de diretores do filme para fazer a atribuição.
                    f.Diretores = this.getDiretores(f.Cod_filme);

                    retorno.Add(f);
                }
            }
            catch (NpgsqlException e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                bd.CloseConnection();
            }

            return(retorno);
        }