Doubts about the use of class

Asked

Viewed 42 times

1

Good morning, you guys. How are you? I am writing a windowsform application, and in some situations I need to make several queries, Insert and delete.. well, so I created a query class, a delete class and an Insert class, where all my queries I play in the query class, all Inserts in the Insert class and so on, is that right? or it would be right to create a class for each action?

Follows part of the query class code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;

namespace Onee
{
    class consulta_bd
    {
        conexao_bd consql = new conexao_bd();

        public Dictionary<string, string> consulta_usuario(int id_usu)
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);

            Dictionary<string, string> dic_consulta_usuario = new Dictionary<string, string>();

            try
            {
                consql._sql = @"SELECT * FROM Login WHERE id_usu = @id_usu";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                cmd.Parameters.Add("@id_usu", SqlDbType.Int).Value = id_usu;
                sqlconn.Open();

                SqlDataReader leitor = cmd.ExecuteReader();

                while (leitor.Read())
                {
                    dic_consulta_usuario.Add("usuario", leitor["usuario"].ToString());
                    dic_consulta_usuario.Add("password", leitor["password"].ToString());
                    dic_consulta_usuario.Add("nome", leitor["nome"].ToString());
                    dic_consulta_usuario.Add("sobrenome", leitor["sobrenome"].ToString());
                    dic_consulta_usuario.Add("email", leitor["email"].ToString());
                    dic_consulta_usuario.Add("tel", leitor["tel"].ToString());
                }
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao gerar dicionario de dados usuario" + "\n" + error);
            }
            finally
            {
                sqlconn.Close();
            }

            return dic_consulta_usuario;
        } // consulta ao clicar no gridiview gera um dicionario e retornar os valores.

        public int consulta_id_usuario()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            int v;

            try
            {
                consql._sql = @"SELECT COUNT(id_usu) FROM Login";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                v = (int)cmd.ExecuteScalar();

                if (v > 0)
                {
                    try
                    {
                        consql._sql = @"SELECT id_usu FROM Login ORDER BY id_usu DESC";
                        SqlCommand cmd1 = new SqlCommand(consql._sql, sqlconn);
                        v = (int)cmd1.ExecuteScalar();
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show("Erro ao consultar id do usuario no banco" + "\n" + error);
                        v = -1;
                    }
                    finally
                    {
                        sqlconn.Close();
                    }

                    return v;
                }

            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao consultar id do usuario no banco" + "\n" + error);
                v = -1;
            }
            finally
            {
                sqlconn.Close();
            }

            return v;
        } //consultar o numero de registro que consta na tabela de login, para dar o numero de id do usario.

        public int consulta_usuario_jacadastrado(string usuario)
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            int v;

            try
            {
                consql._sql = @"SELECT COUNT(id_usu) FROM Login WHERE usuario = @usuario";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = usuario;
                sqlconn.Open();
                v = (int)cmd.ExecuteScalar();
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao verificar se o usuario ja esta cadastrado" + error);
                v = -1;
            }
            finally
            {
                sqlconn.Close();
            }

            return v;
        } // verifica se ja existe o usuario cadastrado.

        public int consulta_servidor()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            int v;

            try
            {
                consql._sql = @"SELECT COUNT(servidor) FROM Servidor_sql";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                v = (int)cmd.ExecuteScalar();
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao buscar Servidor SQL" + error);
                v = -1;
            }
            finally
            {
                sqlconn.Close();
            }

            return v;
        } // verifica se ja existe servidor cadastrado.

        public Dictionary<string, string> preenche_servidor()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            Dictionary<string, string> dic_dados_servidor = new Dictionary<string, string>();

            try
            {
                consql._sql = @"SELECT * FROM Servidor_sql";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                SqlDataReader leitor = cmd.ExecuteReader();

                while (leitor.Read())
                {
                    dic_dados_servidor.Add("servidor", leitor["servidor"].ToString());
                    dic_dados_servidor.Add("login", leitor["login"].ToString());
                    dic_dados_servidor.Add("password", leitor["password"].ToString());
                }
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao buscar Servidor SQL" + error);
            }
            finally
            {
                sqlconn.Close();
            }

            return dic_dados_servidor;
        } // preenche as infomraçoes do servidor no form.

        public Dictionary<string, string> preenche_empresa()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            Dictionary<string, string> dic_dados_empresa = new Dictionary<string, string>();

            try
            {
                consql._sql = @"SELECT * FROM Empresa_man";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                SqlDataReader leitor = cmd.ExecuteReader();

                while (leitor.Read())
                {
                    dic_dados_empresa.Add("razao_social", leitor["razao_social"].ToString());
                    dic_dados_empresa.Add("nome_fantasia", leitor["nome_fantasia"].ToString());
                    dic_dados_empresa.Add("cnpj", leitor["cnpj"].ToString());
                    dic_dados_empresa.Add("ie", leitor["ie"].ToString());
                    dic_dados_empresa.Add("endereco", leitor["endereco"].ToString());
                    dic_dados_empresa.Add("numero", leitor["numero"].ToString());
                    dic_dados_empresa.Add("bairro", leitor["bairro"].ToString());
                    dic_dados_empresa.Add("cidade", leitor["cidade"].ToString());
                    dic_dados_empresa.Add("estado", leitor["estado"].ToString());
                    dic_dados_empresa.Add("pais", leitor["pais"].ToString());
                    dic_dados_empresa.Add("telefone", leitor["telefone"].ToString());
                    dic_dados_empresa.Add("logo", leitor["logo"].ToString());
                    dic_dados_empresa.Add("id_empresa", leitor["id_empresa"].ToString());
                }
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao buscar dados empresa" + error);
            }
            finally
            {
                sqlconn.Close();
            }

            return dic_dados_empresa;
        } // preenche as infomraçoes da empresa no form.

        public int consulta_empresa()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            int v;

            try
            {
                consql._sql = @"SELECT COUNT(id_empresa) FROM Empresa_man";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                v = (int)cmd.ExecuteScalar();
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao contar empresa" + error);
                v = -1;
            }
            finally
            {
                sqlconn.Close();
            }

            return v;
        } // verifica se ja empresa cadastrada.

        public Dictionary<string, string> preenche_cliente(int id_v)
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            Dictionary<string, string> dic_dados_cliente = new Dictionary<string, string>();

            try
            {
                consql._sql = @"SELECT * FROM Cliente_man WHERE id_cliente = @id_cliente";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = id_v;
                sqlconn.Open();
                SqlDataReader leitor = cmd.ExecuteReader();

                while (leitor.Read())
                {
                    dic_dados_cliente.Add("razao_social", leitor["razao_social"].ToString());
                    dic_dados_cliente.Add("nome_fantasia", leitor["nome_fantasia"].ToString());
                    dic_dados_cliente.Add("n_doc", leitor["n_doc"].ToString());
                    dic_dados_cliente.Add("tipo_doc", leitor["tipo_doc"].ToString());
                    dic_dados_cliente.Add("ie", leitor["ie"].ToString());
                    dic_dados_cliente.Add("endereco", leitor["endereco"].ToString());
                    dic_dados_cliente.Add("numero", leitor["numero"].ToString());
                    dic_dados_cliente.Add("bairro", leitor["bairro"].ToString());
                    dic_dados_cliente.Add("cidade", leitor["cidade"].ToString());
                    dic_dados_cliente.Add("estado", leitor["estado"].ToString());
                    dic_dados_cliente.Add("pais", leitor["pais"].ToString());
                    dic_dados_cliente.Add("telefone", leitor["tel"].ToString());
                    dic_dados_cliente.Add("email", leitor["email"].ToString());
                    dic_dados_cliente.Add("im", leitor["im"].ToString());
                    dic_dados_cliente.Add("cep", leitor["cep"].ToString());
                    dic_dados_cliente.Add("bloqueado", leitor["bloqueado"].ToString());
                    dic_dados_cliente.Add("requisitos", leitor["requisitos"].ToString());
                }
            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao buscar dados cliente" + error);
            }
            finally
            {
                sqlconn.Close();
            }

            return dic_dados_cliente;
        } // preenche as infomraçoes do cliente no form.

        public int consulta_id_cliente()
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            int v;

            try
            {
                consql._sql = @"SELECT COUNT(id_cliente) FROM Cliente_man";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                sqlconn.Open();
                v = (int)cmd.ExecuteScalar();

                if (v > 0)
                {
                    try
                    {
                        consql._sql = @"SELECT id_cliente FROM Cliente_man ORDER BY id_cliente DESC";
                        SqlCommand cmd1 = new SqlCommand(consql._sql, sqlconn);
                        v = (int)cmd1.ExecuteScalar();
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show("Erro ao consultar id do usuario no banco" + "\n" + error);
                        v = -1;
                    }
                    finally
                    {
                        sqlconn.Close();
                    }

                    return v;
                }

            }
            catch (Exception error)
            {
                MessageBox.Show("Erro ao consultar id do usuario no banco" + "\n" + error);
                v = -1;
            }
            finally
            {
                sqlconn.Close();
            }

            return v;
        } //consultar o numero de registro que consta na tabela de cliente_man, para dar o numero de id do usario.

        public DataTable preenche_end_cobranca(int id_atual)
        {
            consql.bd_string();
            SqlConnection sqlconn = new SqlConnection(consql.sqlconn);
            DataTable cobranca = new DataTable();
            DataTable entrega = new DataTable();

            try
            {
                consql._sql = @"SELECT id_cliente_alter,nome,endereco,numero,bairro,cidade,estado,cep FROM Cliente_enderecos_alter WHERE id_cliente = @id_cliente AND tipo = 'Cobrança'";
                SqlCommand cmd = new SqlCommand(consql._sql, sqlconn);
                cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = id_atual;


                sqlconn.Open();

                cmd.CommandType = CommandType.Text;

                SqlDataAdapter da = new SqlDataAdapter(cmd);

                da.Fill(cobranca);
            }
            catch
            {

            }
            finally
            {
                sqlconn.Close();
            }

            return cobranca;
        } // preenche as infomraçoes dos enderecos cobranca dos clientes.

1 answer

2


A class should follow the principle of sole responsibility. Another way to see this is that it should have only one reason to change. The way you built any modifications you make to the software you will probably have to modify these classes. Another disadvantage is that over time these classes will become gigantic and difficult to maintain.

A widely used code pattern to abstract database queries is the Repository Pattern. In this you would have for example a Usuariorepository class and in it would be all queries/Inserts referring to the user model.

  • True friend, my class is very big, and sometimes I get lost trying to find something. Thanks for the guidance.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.