public List <Filme> Listar() { //Define string de conexão string strConexao = "SERVER=localhost; DataBase=videolocadora; UID=root; pwd=root"; //Cria conexão com banco de dados using (MySqlConnection conn = new MySqlConnection(strConexao)) { //Abre a conexão com o banco de dados conn.Open(); //Inicia comando para o banco de dados using (MySqlCommand cmd = new MySqlCommand()) { //Monta a consulta no banco de dados string query = "SELECT * FROM filme"; //Passa informação de conexão e consulta para o comando cmd.Connection = conn; cmd.CommandText = query; //Cria um adapter que usará a instrução SQL para acessar a tabela de Filme using (MySqlDataAdapter da = new MySqlDataAdapter()) { da.SelectCommand = cmd; //Cria dataset para preencher a informação vinda do banco de dados DataSet ds = new DataSet(); //Preenche o dataset via adapter da.Fill(ds, "filme"); //Recupera as informações do dataset e guarda em lista para retornar para a VIEW List <Filme> lstRetorno = ds.Tables["filme"].AsEnumerable().Select(x => new Filme { Id = x.Field <int>("id"), Titulo = x.Field <string>("titulo"), Lancamento = Convert.ToInt32(x.Field <Int16>("lancamento")), Sinopse = x.Field <string>("sinopse"), IdGeneroCinematografico = x.Field <int>("genero_cinematografico_id"), IdClassificacaoIndicativa = x.Field <int>("classificacao_indicativa_id") }).ToList(); foreach (Filme filme in lstRetorno) { // Recuperando o genero cinematografico de cada filme da lista GeneroCinematograficoController generoController = new GeneroCinematograficoController(); filme.GeneroCinematografico = generoController.BuscarPorId(filme.IdGeneroCinematografico); // Recuperando a classificacao indicativa de cada filme da lista ClassificacaoIndicativaController classificacaoController = new ClassificacaoIndicativaController(); filme.ClassificacaoIndicativa = classificacaoController.BuscarPorId(filme.IdClassificacaoIndicativa); } //Retorna a informação recuperada return(lstRetorno); } } } }
public Filme Buscar(int id) { //Define string de conexão string strConexao = "SERVER=localhost; DataBase=videolocadora; UID=root; pwd=root"; //Cria conexão com banco de dados using (MySqlConnection conn = new MySqlConnection(strConexao)) { //Abre a conexão com o banco de dados conn.Open(); //Inicia comando para o banco de dados using (MySqlCommand cmd = new MySqlCommand()) { //Monta a consulta no banco de dados string query = $"SELECT * FROM filme WHERE id = {id}"; //Passa informação de conexão e consulta para o comando cmd.Connection = conn; cmd.CommandText = query; //Executa a instrução SQL MySqlDataReader reader = cmd.ExecuteReader(); //Monta objeto de retorno Filme retorno = new Filme(); //Verifica se existe registro retornado do banco de dados while (reader.Read()) { //Popula objeto de retorno com informações vindas do banco de dados retorno.Id = (int)reader["id"]; retorno.Titulo = (string)reader["titulo"]; retorno.Lancamento = Convert.ToInt32((Int16)reader["lancamento"]); retorno.Sinopse = (string)reader["sinopse"]; retorno.IdGeneroCinematografico = (int)reader["genero_cinematografico_id"]; retorno.IdClassificacaoIndicativa = (int)reader["classificacao_indicativa_id"]; } // Recuperando o genero cinematografico de cada filme da lista GeneroCinematograficoController generoController = new GeneroCinematograficoController(); retorno.GeneroCinematografico = generoController.BuscarPorId(retorno.IdGeneroCinematografico); // Recuperando a classificacao indicativa de cada filme da lista ClassificacaoIndicativaController classificacaoController = new ClassificacaoIndicativaController(); retorno.ClassificacaoIndicativa = classificacaoController.BuscarPorId(retorno.IdClassificacaoIndicativa); return(retorno); } } }