none
Erro Campo Obrigatório RRS feed

  • Pergunta

  • Olá gente, estou com uma dúvida em um erro que está acontecendo no meu Form com campos obrigatórios.

     

    private void button3_Click(object sender, EventArgs e)
    
            {
    
                if (cOD_ALUNOTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Codigo Aluno é obrigatório");
    
                    cOD_ALUNOTextBox.Select();
    
                }
    
                else if (nOMETextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Nome é obrigatório");
    
                    nOMETextBox.Select();
    
                }
    
    
    
                else if (sOBRENOMETextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Sobrenome é obrigatório");
    
                    sOBRENOMETextBox.Select();
    
                }
    
                else if (cOD_TURMAComboBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Turma é obrigatório");
    
                    cOD_TURMAComboBox.Select();
    
                }
    
                else if (eNDERECOTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Endereço é obrigatório");
    
                    eNDERECOTextBox.Select();
    
                }
    
    
    
                else if (bAIRROTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Bairro é obrigatório");
    
                    bAIRROTextBox.Select();
    
                }
    
    
    
                else if (cEPMaskedTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo CEP é obrigatório");
    
                    cEPMaskedTextBox.Select();
    
                }
    
    
    
                else if (uFComboBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Unidade Federativa é obrigatório");
    
                    uFComboBox.Select();
    
                }
    
    
    
                else if (cOD_CIDADEComboBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Cidade é obrigatório");
    
                    cOD_CIDADEComboBox.Select();
    
                }
    
    
    
                else if (rGTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo RG é obrigatório");
    
                    rGTextBox.Select();
    
                }
    
    
    
                else if (fONEMaskedTextBox.Text.Equals(""))
    
                {
    
                    MessageBox.Show("Campo Fone é obrigatório");
    
                    fONEMaskedTextBox.Select();
    
                }
    
                else
    
                {
    
    
    
                    this.Validate();
    
                    this.alunoBindingSource.EndEdit();
    
                    this.tableAdapterManager.UpdateAll(this.library_projectDataSet);
    
                    MessageBox.Show("Salvo com sucesso.");
    
                }
    
    
    
            }
    
    
    

     

    Os códigos de validação estão todos corretos, mas mesmo assim, ele salva faltando alguns obrigatórios como o CPF e o FONE.

     

    Também tem outra coisa ocorrendo, a ordem de aparecer as mensagens de erro de código estão fora de ordem( quando falta ENDERECO aparece, por exemplo, "CAMPO BAIRRO É OBRIGATÓRIO") e eu ja usei o Tab Order.

     

    Alguém consegue resolver meus problemas? =p

    segunda-feira, 21 de novembro de 2011 19:05

Respostas

  • Boa tarde,

    o problema é que você esta usando MaskedTextBox então sempre esses campos terão um valor, que é a máscara, por exemplo o CPF vazio sempre terá o valor "   .   .   -  ":

     

    Faça seu else if desses campos com máscara assim:

     

    else if (!fONEMaskedTextBox.MaskCompleted)

     


    Pedro Henrique B. Fernandes
    MCTS - .NET Framework 4, Data Access
    MCTS - .NET Framework 4, Web Applications
    Site: pedrofernandes.net
    segunda-feira, 21 de novembro de 2011 20:51

Todas as Respostas

  • Este tanto de else if deve estar deixando passar alguma coisa.

    Use IsNullOrEmpty.

                if (String.IsNullOrEmpty(txtTelefone.Text))
                {
                    MessageBox.Show("Preencha o campo telefone...");
                }
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    segunda-feira, 21 de novembro de 2011 19:12
  •  

    Desculpe amigo, mas a mesma acontece.

    Vou falar o caminho que ele faz.

    COD ALUNO > NOME > SOBRENOME > TURMA > ENDEREÇO > BAIRRO > CIDADE > RG > SALVAR COM SUCESSO.

    Ele salva mesmo faltando CEP, FONE e CPF

     

    OBS.: Ele ta programado quando apertar TAB, ir de cima para baixo, da esquerda para a direita.


    • Editado shadowzen190 segunda-feira, 21 de novembro de 2011 20:25
    segunda-feira, 21 de novembro de 2011 20:23
  • Acredito que o problema seja teus else if. Eu faria algo assim:

            private void btnEnviar_Click(object sender, EventArgs e)
            {
                bool camposPreenchidos = ValidarCampos();
    
                if (!camposPreenchidos)
                {
                    //cadastra
                }
                else
                {
                    MessageBox.Show("Todos os campos são obrigatórios");
                }
            }
    
            private bool ValidarCampos()
            {
                bool campoVazio = false;
    
                if (String.IsNullOrEmpty(txt1.Text))
                {
                    txt1.Select();
                    campoVazio = true;
                }
    
                if (String.IsNullOrEmpty(txt2.Text))
                {
                    txt2.Select();
                    campoVazio = true;
                }
    
                if (String.IsNullOrEmpty(txt3.Text))
                {
                    txt3.Select();
                    campoVazio = true;
                }
    
                if (String.IsNullOrEmpty(txt4.Text))
                {
                    txt4.Select();
                    campoVazio = true;
                }
    
                return campoVazio;            
            }
    

     


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    segunda-feira, 21 de novembro de 2011 20:47
  • Boa tarde,

    o problema é que você esta usando MaskedTextBox então sempre esses campos terão um valor, que é a máscara, por exemplo o CPF vazio sempre terá o valor "   .   .   -  ":

     

    Faça seu else if desses campos com máscara assim:

     

    else if (!fONEMaskedTextBox.MaskCompleted)

     


    Pedro Henrique B. Fernandes
    MCTS - .NET Framework 4, Data Access
    MCTS - .NET Framework 4, Web Applications
    Site: pedrofernandes.net
    segunda-feira, 21 de novembro de 2011 20:51
  • Ainda o mesmo erro acontece, já tentei de ambos os jeitos, mas valeu pela atenção =p
    segunda-feira, 21 de novembro de 2011 23:17
  • Faz assim cara:

     private void button2_Click(object sender, EventArgs e)

            {

                if (textBox1.Text ==""  || textBox2.Text =="" || radioButton1.Checked==false)

                    {

                        MessageBox.Show("Nenhum campo pode ficar vazio");

                    }

                    else

                    {

                        MessageBox.Show("Sucesso");

                    }

            }


    One word frees us of all the weight and pain of life: that word is love.
    segunda-feira, 21 de novembro de 2011 23:30
    Moderador
  • Como voce quer setar focus, poderias criar um metodo que faz isto:

     private void button2_Click(object sender, EventArgs e)

            {

                if (textBox1.Text ==""  || textBox2.Text =="" || radioButton1.Checked==false)

                    {

                        MessageBox.Show("Nenhum campo pode ficar vazio");

                        focus_aqui(bAIRROTextBoxrGText);

                    }

                    else

                    {

                        MessageBox.Show("Sucesso");

                    }

            }

            private void focus_aqui(TextBox _focus,TextBox _texto) //aqui voce seta o focus.

            {

                if (_focus.Text.Length == 0)

                {

                    _focus.Select();

                }

                else

                if (_texto.Text.Length == 0)

                {

                    _texto.Select();

                }


    One word frees us of all the weight and pain of life: that word is love.
    segunda-feira, 21 de novembro de 2011 23:44
    Moderador