コード例 #1
0
        //Validação do login
        public void  ConsultarLogin()
        {
            try
            {
                DB.AbrirConexao();
                MySqlCommand cmd = new MySqlCommand("SELECT usuario, senha FROM tecnico WHERE usuario=@usuario AND senha = @senha", DB.con);
                cmd.Parameters.AddWithValue("@usuario", usuario);
                cmd.Parameters.AddWithValue("@senha", senha);

                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                DataTable        dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count != 0)
                {
                    this.logado = "Logado";
                    DB.FecharConexao();
                }
                else
                {
                    this.logado = "Negado";
                    DB.FecharConexao();
                }
            }
            catch (Exception error)
            {
                MessageBox.Show(error.Message, "ERRO!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DB.FecharConexao();
            }
        }
コード例 #2
0
ファイル: PessoaDAO.cs プロジェクト: Kainanpr/Projeto_Mercado
        public T FindByCpf<T>(string cpf) where T : Pessoa
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            /* Variavel local responsável por armazenar a  pessoa pesquisada no banco de dados. 
             * (A palavra new so é usada em tipos concretos) 
             * (Activador é uma classe que deixa criar uma instancia de tipo generico) */
            T pessoa = Activator.CreateInstance<T>();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar uma pessoa pelo seu CPF */
                string query = "SELECT p.*, e.rua, e.numero, e.cep, e.cidade, e.estado FROM Pessoa  p "
                               + "LEFT JOIN Endereco e ON p.idEndereco = e.id "
                               + "WHERE p.cpf LIKE @Cpf;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros ja com valor
                command.Parameters.AddWithValue("@Cpf", cpf);

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Verifica se tem dados para ser lidos
                if (dr.Read())
                {
                    //Chama o metodo auxiliar para setar a Pessoa vindo do banco
                    pessoa = setPessoa(dr, pessoa);
                }
                else
                {
                    //Caso não encontre nenhuma pessoa retorna null
                    return null;
                }

            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna a pessoa pesquisada de acordo com seu ID */
            return pessoa;
        }
コード例 #3
0
        /* Método responsável pela iserção do cliente no bd. */
        public Cliente Create(Cliente cliente)
        {

            /* Guarda a pessoa no banco de dados 
             * (O metodo retorna a ultima pessoa inserida no banco já com seu id setado). 
             * Caso ocorra algum problema o metodo returna null, caso contrario returna o cliente */
            cliente = pessoaDAO.Create<Cliente>(cliente);

            //Caso a ultima pessoa a ser inserida tenha problemas o metodo já retorna null
            if (cliente == null)
            {
                return null;
            }

            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                //Query responsavel pela inserção de um Cliente
                string query = "INSERT INTO Cliente(id, email) VALUES(@Id, @Email)";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Id", MySqlDbType.Int32);
                command.Parameters.Add("@Email", MySqlDbType.String);

                //Atribuição de valores
                command.Parameters["@Id"].Value = cliente.Id;
                command.Parameters["@Email"].Value = cliente.Email;

                //Executar instrução sem retorno de dados
                command.ExecuteNonQuery();

                //MessageBox.Show("Conexão com banco de dados efetuada com sucesso");
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se der erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            //Retorna o cliente cadastrado ja com seu id setado, ou seja, id gerado no banco
            return cliente;
        }
コード例 #4
0
        /* Pesquisa um cliente pelo seu ID */
        public Cliente Read(int id)
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            //Variavel local responsável por armazenar o cliente pesquisado de acordo com seu ID
            //Chama o metodo generico da classe pessoaDAO
            Cliente cliente = pessoaDAO.Read<Cliente>(id);

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar um cliente pelo seu id */
                string query = "SELECT email FROM Cliente WHERE id = @Id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Id", MySqlDbType.Int32);

                //Atribuição de valores
                command.Parameters["@Id"].Value = id;

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Verifica se tem dados para ser lido
                if (dr.Read())
                {
                    cliente = setCliente(dr, cliente);
                }
                else
                {
                    //Caso não encontre nenhum cliente retorna null
                    return null;
                }

            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna o endereco pesquisado de acordo com seu ID */
            return cliente;
        }
コード例 #5
0
        //criar dados dos tecnicos
        public void CriarDados()
        {
            try
            {
                DB.AbrirConexao();
                string       CommandText = "INSERT INTO tecnico VALUES (0, @usuario, @senha, @nome_tecnico, @cnh, @cidade, @bairro, @rua, @numero, @cep, @uf, @complemento, @celular, @data_nascimento, @inativar)";
                MySqlCommand cmd         = new MySqlCommand(CommandText, DB.con);

                cmd.Parameters.AddWithValue("@usuario", usuario);
                cmd.Parameters.AddWithValue("@senha", senha);
                cmd.Parameters.AddWithValue("@nome_tecnico", nome);
                cmd.Parameters.AddWithValue("@cnh", cnh);
                cmd.Parameters.AddWithValue("@cidade", cidade);
                cmd.Parameters.AddWithValue("@bairro", bairro);
                cmd.Parameters.AddWithValue("@rua", rua);
                cmd.Parameters.AddWithValue("@numero", numero);
                cmd.Parameters.AddWithValue("@cep", cep);
                cmd.Parameters.AddWithValue("@uf", uf);
                cmd.Parameters.AddWithValue("@complemento", complemento);
                cmd.Parameters.AddWithValue("@celular", celular);
                cmd.Parameters.AddWithValue("@data_nascimento", data_nascimento);
                cmd.Parameters.AddWithValue("@inativar", inativar);

                cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                MessageBox.Show("Cadastrado com sucesso");
                DB.FecharConexao();
            }
            catch (Exception error) {
                MessageBox.Show(error.ToString());
            }
        }
コード例 #6
0
        public void Update(Endereco endereco)
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por atualizar o endereno no banco */
                string query = "UPDATE Endereco SET rua = @Rua, numero = @Numero, cep = @Cep, "
                               + "cidade = @Cidade, estado = @Estado WHERE id = @Id";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Rua", MySqlDbType.String);
                command.Parameters.Add("@Numero", MySqlDbType.Int32);
                command.Parameters.Add("@Cep", MySqlDbType.Int32);
                command.Parameters.Add("@Cidade", MySqlDbType.String);
                command.Parameters.Add("@Estado", MySqlDbType.String);
                command.Parameters.Add("@Id", MySqlDbType.Int32);

                //Atribuição de valores
                if (endereco.Numero != 0)
                {
                    command.Parameters["@Numero"].Value = endereco.Numero;
                }

                if (endereco.Cep != 0)
                {
                    command.Parameters["@Cep"].Value = endereco.Cep;
                }

                command.Parameters["@Rua"].Value    = endereco.Rua;
                command.Parameters["@Cidade"].Value = endereco.Cidade;
                command.Parameters["@Estado"].Value = endereco.Estado;
                command.Parameters["@Id"].Value     = endereco.Id;

                //Executar instrução sem retorno de dados
                command.ExecuteNonQuery();
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }
        }
コード例 #7
0
        //CREATE dados
        public void Criar_Dados()
        {
            try
            {
                DB.AbrirConexao();
                string       CommandText = "INSERT INTO empresa VALUES (0, @razao, @fantasia, @cnpj, @inscricao_estadual, @rua, @bairro, @cidade, @numero, @cep, @uf, @telefone, @celular, @email_contador, @email, @inativado) ";
                MySqlCommand cmd         = new MySqlCommand(CommandText, DB.con);

                cmd.Parameters.AddWithValue("@razao", razao);
                cmd.Parameters.AddWithValue("@fantasia", fantasia);
                cmd.Parameters.AddWithValue("@cnpj", cnpj);
                cmd.Parameters.AddWithValue("@inscricao_estadual", inscricao_estadual);
                cmd.Parameters.AddWithValue("@rua", rua);
                cmd.Parameters.AddWithValue("@bairro", bairro);
                cmd.Parameters.AddWithValue("@cidade", cidade);
                cmd.Parameters.AddWithValue("@numero", numero);
                cmd.Parameters.AddWithValue("@cep", cep);
                cmd.Parameters.AddWithValue("@uf", uf);
                cmd.Parameters.AddWithValue("@telefone", telefone);
                cmd.Parameters.AddWithValue("@celular", celular);
                cmd.Parameters.AddWithValue("@email_contador", email_contador);
                cmd.Parameters.AddWithValue("@email", email);
                cmd.Parameters.AddWithValue("@inativado", inativado);
                MessageBox.Show("Cadastrado com sucesso!");
                cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                DB.FecharConexao();
            }
            catch (Exception error) {
                MessageBox.Show(error.ToString());
            }
        }
コード例 #8
0
        /* Pesquisa um endereco pelo seu ID */
        public Endereco Read(int id)
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            //Variavel local responsável por armazenar o endereco pesquisado de acordo com seu ID
            Endereco endereco = new Endereco();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar um endereco pelo seu id */
                string query = "SELECT * FROM Endereco WHERE id = @Id";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Id", MySqlDbType.Int32);

                //Atribuição de valores
                command.Parameters["@Id"].Value = id;

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Chama o metodo auxiliar para setar o Endereco vindo do banco
                endereco = setEndereco(dr, endereco);
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return(null);
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna o endereco pesquisado de acordo com seu ID */
            return(endereco);
        }
コード例 #9
0
ファイル: PessoaDAO.cs プロジェクト: Kainanpr/Projeto_Mercado
        public void Update<T>(T pessoa) where T : Pessoa
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por atualizar a pessoa na tabela pessoa do banco */
                string query = "UPDATE Pessoa SET cpf = @Cpf, nome = @Nome, telefone = @Telefone WHERE id = @Id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Cpf", MySqlDbType.String);
                command.Parameters.Add("@Nome", MySqlDbType.String);
                command.Parameters.Add("@Telefone", MySqlDbType.String);
                command.Parameters.Add("@Id", MySqlDbType.Int32);

                //Atribuição de valores
                command.Parameters["@Cpf"].Value = pessoa.Cpf;
                command.Parameters["@Nome"].Value = pessoa.Nome;
                command.Parameters["@Telefone"].Value = pessoa.Telefone;
                command.Parameters["@Id"].Value = pessoa.Id;

                //Executar instrução sem retorno de dados
                command.ExecuteNonQuery();

                //MessageBox.Show("Conexão com banco de dados efetuada com sucesso");
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);
            }
            finally
            {
                //Independente se der erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }
        }
コード例 #10
0
        public void Update(Cliente cliente)
        {
            /* Atualiza os dados da pessoa na tabela pessoa */
            pessoaDAO.Update<Cliente>(cliente);

            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por atualizar o cliente na tabela cliente do banco */
                string query = "UPDATE Cliente SET email = @Email WHERE id = @Id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Id", MySqlDbType.Int32);
                command.Parameters.Add("@Email", MySqlDbType.String);

                //Atribuição de valores
                command.Parameters["@Id"].Value = cliente.Id;
                command.Parameters["@Email"].Value = cliente.Email;

                //Executar instrução sem retorno de dados
                command.ExecuteNonQuery();

                //MessageBox.Show("Conexão com banco de dados efetuada com sucesso");
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);
            }
            finally
            {
                //Independente se der erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }
        }
コード例 #11
0
ファイル: PessoaDAO.cs プロジェクト: Kainanpr/Projeto_Mercado
        public void Delete(int id)
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por deletar a pessoa na tabela pessoa do banco */
                string query = "DELETE FROM Pessoa WHERE id = @Id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Id", MySqlDbType.Int32);

                //Atribuição de valores
                command.Parameters["@Id"].Value = id;

                //Executar instrução sem retorno de dados
                command.ExecuteNonQuery();

                //MessageBox.Show("Conexão com banco de dados efetuada com sucesso");
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);
            }
            finally
            {
                //Independente se der erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }
        }
コード例 #12
0
        //Listagem de Ordem de Serviço
        public void Listar_Dados(DataGridView dgv)
        {
            try
            {
                DB.AbrirConexao();
                string           query = "select os.fk_empresa, os.inativado, os.fk_tecnico, e.celular, e.telefone, os.id_os, t.nome_tecnico, e.fantasia, e.cnpj, os.solicitante, os.assunto, os.descricao, os.atendimento, os.sistema, os.solucao, os.abertura, os.conclusao, os.status_os from tecnico as t inner join empresa as e inner join ordemservico as os where os.fk_empresa = e.id_empresa and os.fk_tecnico = t.id_tecnico and os.id_os = os.id_os and os.inativado = 0  ";
                MySqlDataAdapter MyDA  = new MySqlDataAdapter();
                MyDA.SelectCommand = new MySqlCommand(query, DB.con);

                DataTable table = new DataTable();
                MyDA.Fill(table);
                BindingSource bSource = new BindingSource();
                bSource.DataSource = table;
                dgv.DataSource     = bSource;
                DB.FecharConexao();
            }
            catch (Exception error) {
                MessageBox.Show(error.ToString());
            }
        }
コード例 #13
0
        public List<Cliente> FindByName(string name) 
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            /* Variavel local responsável por armazenar o todos os clientes vindas do banco */
            //Chama o metodo generico da classe pessoaDAO
            List<Cliente> clientes = pessoaDAO.FindByName<Cliente>(name);

            /* Variavel local responsável por armazenar o cliente pesquisado no banco de dados */
            Cliente cliente = new Cliente();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar um cliente pelo seu nome */
                string query = "SELECT c.email FROM Pessoa p "
                                + "LEFT JOIN Endereco e ON p.idEndereco = e.id "
                                + "INNER JOIN Cliente c ON p.id = c.id "
                                + "WHERE lower(p.nome) LIKE @Name ORDER BY p.id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros ja com valor
                command.Parameters.AddWithValue("@Name", "%" + name + "%");

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Percorrer esse objeto até obter todos os dados
                if (dr.HasRows)
                {
                    //Contador para percorrer a lista
                    int count = 0;

                    while (dr.Read())
                    {
                        //Chama o metodo auxiliar para setar a Pessoa vindo do banco 
                        cliente = setCliente(dr, cliente);

                        //Percorre a lista e altera o email de cada cliente
                        clientes[count++].Email = cliente.Email;
                    }
                }
                else
                {
                    //Caso ocorra algum problema retorna null
                    return null;
                }

            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna todos os clientes pesquisados */
            return clientes; 
        }
コード例 #14
0
ファイル: PessoaDAO.cs プロジェクト: Kainanpr/Projeto_Mercado
        /* Método responsável pela iserção da pessoa no bd.
         * Esse método retorna um objeto de tipo Generico(qualquer tipo que extenda pessoa) que representa a ultima Pessoa
         * inserido no banco, para que essa Pessoa
         * possa ser associado a um funcionado ou a um cliente*/
        public T Create<T>(T pessoa) where T : Pessoa
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            /* Variavel local responsável por armazenar a ultima pessoa inserida na tabela Pessoa. 
             * (A palavra new so é usada em tipos concretos) 
             * (Activador é uma classe que deixa criar uma instancia de tipo generico) */
            T ultimaPessoa = Activator.CreateInstance<T>();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Utilizamos uma Stored Procedure para retornar a ultima pessoa inserida na tabela Pessoa. 
                 * Essa procedure foi feita pelo fato de o id ser auto_increment, sendo assim, sem o uso de procedure
                 * não teriamos o controle de qual id foi inserido por ultimo. */
                string query = "CALL sp_pessoa_insert (@Cpf, @Nome, @Telefone, @IdEndereco)";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Cpf", MySqlDbType.String);
                command.Parameters.Add("@Nome", MySqlDbType.String);
                command.Parameters.Add("@Telefone", MySqlDbType.String);
                command.Parameters.Add("@IdEndereco", MySqlDbType.Int32);

                //Atribuição de valores
                command.Parameters["@Cpf"].Value = pessoa.Cpf;
                command.Parameters["@Nome"].Value = pessoa.Nome;
                command.Parameters["@Telefone"].Value = pessoa.Telefone;
                command.Parameters["@IdEndereco"].Value = pessoa.Endereco.Id;

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Verifica se tem dados para ser lidos
                if (dr.Read())
                {
                    //Chama o metodo auxiliar para setar a Pessoa vindo do banco
                    ultimaPessoa = setPessoa(dr, ultimaPessoa);
                }
                else
                {
                    //Caso não encontre nenhuma pessoa retorna null
                    return null;
                }

                //MessageBox.Show("Conexão com banco de dados efetuada com sucesso");
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se der erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna a ultima pessoa inserido na tabela Pessoa 
             * para que possa ser associado a um funcionado ou a um cliente
             * (Esse retorno se torna necessario para controlar os ids da tabela, pois é um campo auto_increment) */
            pessoa.Id = ultimaPessoa.Id;
            return pessoa;
        }
コード例 #15
0
ファイル: PessoaDAO.cs プロジェクト: Kainanpr/Projeto_Mercado
        public List<T> FindByName<T>(string name) where T : Pessoa
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            /* Variavel local responsável por armazenar o todas as pessoas vindas do banco */
            List<T> pessoas = new List<T>();

            /* Variavel local responsável por armazenar a  pessoa pesquisada no banco de dados. 
             * (A palavra new so é usada em tipos concretos) 
             * (Activador é uma classe que deixa criar uma instancia de tipo generico) */
            T pessoa = Activator.CreateInstance<T>();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar uma pessoa pelo seu nome */
                string query = "SELECT p.*, e.rua, e.numero, e.cep, e.cidade, e.estado FROM Pessoa p "
                                + "LEFT JOIN Endereco e ON p.idEndereco = e.id "
                                + "INNER JOIN " + pessoa.GetType().Name + " tg ON p.id = tg.id "
                                + "WHERE lower(p.nome) LIKE @Name ORDER BY p.id;";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros ja com valor
                command.Parameters.AddWithValue("@Name", "%" + name + "%");

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Percorrer esse objeto até obter todos os dados
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        /* Variavel local responsável por armazenar a pessoa pesquisada no banco de dados. 
                         * (A palavra new so é usada em tipos concretos) 
                         * (Activador é uma classe que deixa criar uma instancia de tipo generico) */
                        pessoa = Activator.CreateInstance<T>();

                        //Chama o metodo auxiliar para setar a Pessoa vindo do banco 
                        pessoa = setPessoa(dr, pessoa);

                        //Adiciona a pessoa na lista
                        pessoas.Add(pessoa);
                    }

                }
                else
                {
                    //Caso ocorra algum problema retorna null
                    return null;
                }

            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna todas as pessoas pesquisadas */
            return pessoas;
        }
コード例 #16
0
        /* Método responsável pela iserção do endereço no bd.
         * Esse método retorna um objeto do tipo Endereco que representa o ultimo Endereco
         * inserido no banco, para que esse endereço
         * possa ser associado a pessoa correta*/
        public Endereco Create(Endereco endereco)
        {
            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            //Variavel local responsável por armazenar o ultimo endereco inserido na tabela Endereco
            Endereco ultimoEndereco = new Endereco();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Utilizamos uma Stored Procedure para retornar o ultimo endereco inserido na tabela Endereco.
                 * Essa procedure foi feita pelo fato de o id ser auto_increment, sendo assim, sem o uso de procedure
                 * não teriamos o controle de qual id foi inserido por ultimo. */
                string query = "CALL sp_endereco_insert (@Rua, @Numero, @Cep, @Cidade, @Estado)";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Adição de parametros e espeficicação dos tipos
                command.Parameters.Add("@Rua", MySqlDbType.String);
                command.Parameters.Add("@Numero", MySqlDbType.Int32);
                command.Parameters.Add("@Cep", MySqlDbType.Int32);
                command.Parameters.Add("@Cidade", MySqlDbType.String);
                command.Parameters.Add("@Estado", MySqlDbType.String);

                //Atribuição de valores
                command.Parameters["@Rua"].Value    = endereco.Rua;
                command.Parameters["@Numero"].Value = endereco.Numero;
                command.Parameters["@Cep"].Value    = endereco.Cep;
                command.Parameters["@Cidade"].Value = endereco.Cidade;
                command.Parameters["@Estado"].Value = endereco.Estado;

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Chama o metodo auxiliar para setar o Endereco vindo do banco
                ultimoEndereco = setEndereco(dr, ultimoEndereco);
            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return(null);
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna o ultimo endereco inserido na tabela Endereco
             * para que possa ser asociado a Pessoa correta
             * (Esse retorno se torna necessario para controlar os ids da tabela, pois é um campo auto_increment) */
            return(ultimoEndereco);
        }
コード例 #17
0
        public List<Cliente> ListAll()
        {

            //Recupera a instancia unica do banco de dados
            dataBase = DataBase.GetInstance();

            /* Variavel local responsável por armazenar o todos os clientes vindas do banco */
            //Chama o metodo generico da classe pessoaDAO
            List<Cliente> clientes = pessoaDAO.ListAll<Cliente>();

            /* Variavel local responsável por armazenar o cliente pesquisado no banco de dados */
            Cliente cliente = new Cliente();

            try
            {
                //Tenta abrir a conexao
                dataBase.AbrirConexao();

                /* Query responsavel por buscar uma pessoa pelo seu id */
                string query = "SELECT email FROM Cliente ORDER BY id";

                //Comando responsavel pela query
                MySqlCommand command = new MySqlCommand(query, dataBase.GetConexao());

                //Executar instrução com retorno de dados, retorna objeto do tipo MySqlDataReader
                MySqlDataReader dr = command.ExecuteReader();

                //Percorrer esse objeto até obter todos os dados
                if (dr.HasRows)
                {
                    //Contador para percorrer a lista
                    int count = 0;

                    while (dr.Read())
                    {
                        //Chama o metodo auxiliar para setar a Pessoa vindo do banco 
                        cliente = setCliente(dr, cliente);

                        //Percorre a lista e altera o email de cada cliente
                        clientes[count++].Email = cliente.Email;
                    }
                }
                else
                {
                    //Caso ocorra algum problema retorna null
                    return null;
                }

            }
            //Caso ocorra algum tipo de exceção será tratado aqui.
            catch (MySqlException ex)
            {
                //Mostrar o erro na tela
                MessageBox.Show("Erro: " + ex.Message);

                //Caso ocorra algum problema retorna null
                return null;
            }
            finally
            {
                //Independente se ocorrer erro ou não a conexão com o banco de dados será fechada
                dataBase.FecharConexao();
            }

            /* Retorna todos os clientes pesquisados */
            return clientes;
        }