コード例 #1
0
        public Locacao 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 Locacao 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
                    Locacao retorno = new Locacao();

                    //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.DataInclusao = (DateTime)reader["data_inclusao"];
                        retorno.Pagamento    = Convert.ToInt32((Int16)reader["pagamento_id"]);
                        retorno.IdCliente    = (string)reader["cliente_id"];
                        retorno.IdLocacao    = (int)reader["locacao_id"];
                    }
                    //Duvida nas chaves//tem que colocar mais opcao de busca ou a parte de baixo ja e pra selecionar as opcoes?
                    // Recuperando a data da inclusao do pagamento
                    DataInclusaoController data_inclusaoController = new DataInclusaoController();
                    Locacao.DataInclusao = data_inclusaoController.BuscarPorId(Locacao.data_inclusao);

                    // Recuperando o pagamento
                    PagamentoController pagamentoController = new PagamentoController();
                    Locacao.Pagamento = pagamentoController.BuscarPorId(Locacao.IdPagamento);

                    // Recuperando o id do cliente
                    ClienteController clienteController = new ClienteController();
                    Locacao.Cliente = clienteController.BuscarPorId(Locacao.IdCliente);

                    // Recuperando a locacao
                    LocacaoController locacaoController = new LocacaoController();
                    Locacao.Locacao = LocacaoController.BuscarPorId(Locacao.IdLocacao);

                    return(retorno);
                }
            }
        }
コード例 #2
0
        public List <Locacao> 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 Locacao";

                    //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 Locacao
                    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, "Locacao");

                        //Recupera as informações do dataset e guarda em lista para retornar para a VIEW
                        List <Locacao> lstRetorno = ds.Tables["Locacao"].AsEnumerable().Select(x => new Locacao
                        {
                            Id           = x.Field <int>("id"),
                            DataInclusao = x.Field <DateTime>("data_inclusao"),
                            IdPagamento  = Convert.ToInt32(x.Field <Int16>("pagamento_id")),
                            IdCliente    = x.Field <int>("cliente_id"),
                            IdLocacao    = x.Field <int>("locacao_id")
                        }).ToList();
                        // lucas ver aqui com atencao
                        foreach (Locacao Locacao in lstRetorno)
                        {
                            // Recuperando a data da inclusao do pagamento
                            DataInclusaoController data_inclusaoController = new DataInclusaoController();
                            Locacao.DataInclusao = data_inclusaoController.BuscarPorId(Locacao.data_inclusao);

                            // Recuperando o pagamento
                            PagamentoController pagamentoController = new PagamentoController();
                            Locacao.Pagamento = pagamentoController.BuscarPorId(Locacao.IdPagamento);

                            // Recuperando o id do cliente
                            ClienteController clienteController = new ClienteController();
                            Locacao.Cliente = clienteController.BuscarPorId(Locacao.IdCliente);

                            // Recuperando a locacao
                            LocacaoController locacaoController = new LocacaoController();
                            Locacao.Locacao = LocacaoController.BuscarPorId(Locacao.IdLocacao);
                        }

                        //Retorna a informação recuperada
                        return(lstRetorno);
                    }
                }
            }
        }