none
Como implementar regras de validação para CRUD em um Projeto C# RRS feed

  • Pergunta

  • Salve Galera!!!

    Um amigo meu aqui do Forum está me ajudando a esclarecer dúvidas sobre um projeto que estou fazendo para um TCC da minha faculdade. Sé que ele tá cheio de trabalho e nw queria incomodá-lo com tanta frequência. Por isso estou recorrendo a este fórum para ver se alguém pode me dar umas dicas ou me ajudar a montar um form no qual estou tendo muitas dúvidas.

    Estou aprendendo a programar agora e não sei como é uma estrutura de um software comercial... tenho muita teoria e nada de prática kkkkk.

    Meu projeto é um sisteminha gerenciador de avaliações escolares. Está orientado a objetos e o que eu quero focar são 3 elementos: Class Professores( contém atributos e propriedades que fazem o encapsulamento), Class BaseModeloCRUD(contém métodos abstratos como novo, salvar, excluir, etc, que são obrigatoriamente implementados nas outras classes), Class ProfessoresCRUD( que herda as caracteristicas da Class ProfessoresCRUD) e Form_Professores (tela de cadastro).

    A parte da arquitetura inicial, já está montada. Só não sei como implementar regras de validação para Salvar, excluir e novo.

    Essas regras eu fiz um pouco lá no encapsulamento na classe Professores (tipo: o campo nome do professor não pode ter mais do que 60 caracteres).. etc. No evento do botão Salvar, eu tb fiz validações do tipo: (1- Se o usuario digitar letras no campo codigo do professor ou deixa-lo em branco nw aceite, etc.... Só que tive que colocar um monte dfe ifs e trys e ficou muito confuso e nw sei se isso é correto....

    Alguém poderia me dar dicas? O projeto é complicado de explicar aqui pois só posso posta 2 imagens.. Quem puder me ajudar, posso mandar o projeto por email para ficar mais fácil a análise. Depois eu marco aqui a resposta.

    Obrigado galera!


    terça-feira, 6 de agosto de 2013 15:26

Respostas

Todas as Respostas

  • Olha cara deu pra percebr que você está usando WebForms. Já usou o ValidatorsControls? Na Toolbox, na aba validator, tem os validators controls. Basta arrasta-lo para página e linka-lo à um outro control, através da propridade ControlToValidate="". 

    Existem vários validators, como RequiredFieldValidator, RangeValidator, and so on. 

    De uma olhada neste artigo, pode ajudar basntate http://www.codeproject.com/Articles/49527/How-to-Use-the-ASP-NET-Validation-Control-to-Valid


    Ao infinito e além!

    terça-feira, 6 de agosto de 2013 15:36
  • É um Form Windows mesmo. Nw sei trabalhar ainda com WebForms rsrsrs um dia chego lá kkk
    terça-feira, 6 de agosto de 2013 15:39
  • Fala ai Jalber, blxx

    então a questão de validação vc pode fazer dentro do seu botão mesmo, já que o projeto não tem camada de negocio,

    tipo se o nome do professor esta vazio, graduação e tudo mais !!!! mais ou menos assim :

     private void btnSalvar_Click(object sender, EventArgs e)
            {
    
                // Campos Obrigatórios
                if (String.IsNullOrWhiteSpace(txbNomeCompletoProfessor.Text))
                    MessageBox.Show("nome Professor esta vazio");
    
                else if (String.IsNullOrWhiteSpace(txbGraduacao.Text))
                    MessageBox.Show("Graduação esta vazio");
                else
                {
    
                    var PegarAutoIncrementoBanco = professoresCRUD.PegarAutoIncrementoBanco();
    
                    try
                    {
                        prof.CodigoProfessor = Convert.ToInt16(txbCodigoProfessor.Text);
                        prof.NomeCompleto = txbNomeCompletoProfessor.Text;
                        prof.TipoGraduacao = txbGraduacao.Text;
                        prof.TipoPosGraduacao = txbPosGraduacao.Text;
                        prof.TipoMestrado = txbMestrado.Text;
                        prof.TipoDoutorado = txbDoutorado.Text;
    
                        professoresCRUD.ValidarDadosInserirRegistro(prof);
                        txbCodigoProfessor.Focus();
                    }
                    catch (Exception)
                    {
    
                        if ((MessageBox.Show("O valor do campo Código do Professor  " + txbCodigoProfessor.Text + " é inválido, pois não foram utilizados caracteres numéricos!\nDeseja que o sistema gere um Código do Professor Automaticamente?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes))
                        {
                            txbCodigoProfessor.Text = professoresCRUD.PegarAutoIncrementoBanco().ToString();
                            MessageBox.Show("Código do Professor gerado!\nSalve novamente o registro.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            txbCodigoProfessor.Focus();
                        }
                        else
                        {
                            MessageBox.Show("Digite um Código do Professor válido e salve novamente o registro.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            txbCodigoProfessor.Focus();
                        }
    
                    }
                }
            }
    

    abraço :)


    Diego Almeida Barreto System Analyst / Software Developer

    terça-feira, 6 de agosto de 2013 16:29
  • Ah tá Diego... Então eu estava indo mais ou menos certo? kkkk

    Eu minha dúvida é que além de validar no botão, tem a questão das propriedades da classe que encapsulam... meu professor ensinou validar lá tb.... mas quando validei lá, ai deu uns bugs pois ficaram várias validações....

    Consegui até fazer loop kkkkkkkk

    Mas vc tem algum link que fale sobre camada de negócio?

    terça-feira, 6 de agosto de 2013 16:44
  • Jalber Romano,

    Se vc esta validando as informações no seu form justamente  para enviar informações corretas para as suas propriedades encapsuladas,  se vc estive programando em camadas vc faria a validação na camada business logic layer (BLL) como não esta pode fazer no form mesmo......

    da uma olhada aqui:

    http://www.macoratti.net/11/05/c_aspn3c.htm


    Diego Almeida Barreto System Analyst / Software Developer

    terça-feira, 6 de agosto de 2013 17:00
  • Hummmm entendi... Muito bom o conteúdo que do link.. vou me aprofundar mais nisso Diego.

    Obrigado mano.

    • Marcado como Resposta Jalber Romano terça-feira, 6 de agosto de 2013 17:46
    terça-feira, 6 de agosto de 2013 17:10