//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); }
//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); }