domingo, 11 de maio de 2014

Validações e Máscaras - CEP - CPF -RG - CNPJ - DATA - HORA - DECIMAL - INTEIRO - EMAIL TUDO AQUI

/* O que temos
formataMascara(campo, evt, formato)
function formataValor(campo, evt) monetario
function formataData(campo, evt)
function PosicaoCursor(textarea) //descobre qual a posição do cursor no campo
function MovimentaCursor(textarea, pos)
function formataDataeHora(campo, evt)
function formataInteiro(campo, evt)
function formataHora(campo, evt)
function filtraCampo(campo)
function filtraNumeros(campo) // limpa todos caracteres que não são números
function filtraCaracteres(campo) // limpa todos caracteres que não são letras
function filtraNumerosComVirgula(campo) // limpa todos caracteres que não são números, menos a vírgula
function formataMesAno(campo, evt)
function teclaValida(tecla)
function getEvent(evt)
function validaData(campo, valor) {
function TestaCPF(strCPF)
function checkMail(mail) {
function MascaraRG(rg)
*/
function formataMascara(campo, evt, formato)
{
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;

    var result = "";
    var maskIdx = formato.length - 1;
    var error = false;
    var valor = campo.value;
    var posFinal = false;
    if (campo.setSelectionRange)
    {
        if (campo.selectionStart == valor.length)
            posFinal = true;
    }
    valor = valor.replace(/[^0123456789Xx]/g, '');
    for (var valIdx = valor.length - 1; valIdx >= 0 && maskIdx >= 0; --maskIdx)
    {
        var chr = valor.charAt(valIdx);
        var chrMask = formato.charAt(maskIdx);
        switch (chrMask)
        {
            case '#':
                if (!(/\d/.test(chr)))
                    error = true;
                result = chr + result;
                --valIdx;
                break;
            case '@':
                result = chr + result;
                --valIdx;
                break;
            default:
                result = chrMask + result;
        }
    }
    campo.value = result;
    campo.style.color = error ? 'red' : '';
    if (posFinal)
    {
        campo.selectionStart = result.length;
        campo.selectionEnd = result.length;
    }
    return result;
}
// Formata o campo valor monetário
function formataValor(campo, evt)
{
    //1.000.000,00
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    if (vr.length > 0)
    {
        vr = parseFloat(vr.toString()).toString();
        tam = vr.length;
        if (tam == 1)
            campo.value = "0,0" + vr;
        if (tam == 2)
            campo.value = "0," + vr;
        if ((tam > 2) && (tam <= 5))
        {
            campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 6) && (tam <= 8))
        {
            campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 9) && (tam <= 11))
        {
            campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 12) && (tam <= 14))
        {
            campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }
        if ((tam >= 15) && (tam <= 18))
        {
            campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
        }
    }
    MovimentaCursor(campo, xPos);
}
// Formata data no padrão DD/MM/YYYY
function formataData(campo, evt)
{
    var xPos = PosicaoCursor(campo);
    //dd/MM/yyyy
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam >= 2 && tam < 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
    if (tam == 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/';
    if (tam > 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4);
    MovimentaCursor(campo, xPos);
}
//descobre qual a posição do cursor no campo
function PosicaoCursor(textarea)
{
    var pos = 0;
    if (typeof (document.selection) != 'undefined')
    {
        //IE
        var range = document.selection.createRange();
        var i = 0;
        for (i = textarea.value.length; i > 0; i--)
        {
            if (range.moveStart('character', 1) == 0)
                break;
        }
        pos = i;
    }
    if (typeof (textarea.selectionStart) != 'undefined')
    {
        //FireFox
        pos = textarea.selectionStart;
    }
    if (pos == textarea.value.length)
        return 0; //retorna 0 quando não precisa posicionar o elemento
    else
        return pos; //posição do cursor
}
// move o cursor para a posição pos
function MovimentaCursor(textarea, pos)
{
    if (pos <= 0)
        return; //se a posição for 0 não reposiciona
    if (typeof (document.selection) != 'undefined')
    {
        //IE
        var oRange = textarea.createTextRange();
        var LENGTH = 1;
        var STARTINDEX = pos;
        oRange.moveStart("character", -textarea.value.length);
        oRange.moveEnd("character", -textarea.value.length);
        oRange.moveStart("character", pos);
        //oRange.moveEnd("character", pos);
        oRange.select();
        textarea.focus();
    }
    if (typeof (textarea.selectionStart) != 'undefined')
    {
        //FireFox
        textarea.selectionStart = pos;
        textarea.selectionEnd = pos;
    }
}
//Formata data e hora no padrão DD/MM/YYYY HH:MM
function formataDataeHora(campo, evt)
{
    xPos = PosicaoCursor(campo);
    //dd/MM/yyyy
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam >= 2 && tam < 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
    if (tam == 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/';
    if (tam > 4)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4);
    if (tam > 8 && tam < 11)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4) + ' ' + vr.substr(8, 2);
    if (tam >= 11)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4) + ' ' + vr.substr(8, 2) + ':' + vr.substr(10);
    campo.value = campo.value.substr(0, 16);
    //    if(xPos == 2 || xPos == 5)
    //        xPos = xPos +1;
    //    if(xPos == 11 || xPos == 14)
    //        xPos = xPos +2;
    MovimentaCursor(campo, xPos);
}
// Formata só números
function formataInteiro(campo, evt)
{
    //1234567890
    xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    campo.value = filtraNumeros(filtraCampo(campo));
    MovimentaCursor(campo, xPos);
}
// Formata hora no padrao HH:MM
function formataHora(campo, evt)
{
    //HH:mm
    xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    if (tam == 2)
        campo.value = vr.substr(0, 2) + ':';
    if (tam > 2 && tam < 5)
        campo.value = vr.substr(0, 2) + ':' + vr.substr(2);
    //    if(xPos == 2)
    //        xPos = xPos + 1;
    MovimentaCursor(campo, xPos);
}
// limpa todos os caracteres especiais do campo solicitado
function filtraCampo(campo)
{
    var s = "";
    var cp = "";
    vr = campo.value;
    tam = vr.length;
    for (i = 0; i < tam; i++)
    {
        if (vr.substring(i, i + 1) != "/"
                  && vr.substring(i, i + 1) != "-"
                  && vr.substring(i, i + 1) != "."
                  && vr.substring(i, i + 1) != "("
                  && vr.substring(i, i + 1) != ")"
                  && vr.substring(i, i + 1) != ":"
                  && vr.substring(i, i + 1) != ",")
        {
            s = s + vr.substring(i, i + 1);
        }
    }
    return s;
    //return campo.value.replace("/", "").replace("-", "").replace(".", "").replace(",", "")
}
// limpa todos caracteres que não são números
function filtraNumeros(campo)
{
    var s = "";
    var cp = "";
    vr = campo;
    tam = vr.length;
    for (i = 0; i < tam; i++)
    {
        if (vr.substring(i, i + 1) == "0" ||
                  vr.substring(i, i + 1) == "1" ||
                  vr.substring(i, i + 1) == "2" ||
                  vr.substring(i, i + 1) == "3" ||
                  vr.substring(i, i + 1) == "4" ||
                  vr.substring(i, i + 1) == "5" ||
                  vr.substring(i, i + 1) == "6" ||
                  vr.substring(i, i + 1) == "7" ||
                  vr.substring(i, i + 1) == "8" ||
                  vr.substring(i, i + 1) == "9")
        {
            s = s + vr.substring(i, i + 1);
        }
    }
    return s;
    //return campo.value.replace("/", "").replace("-", "").replace(".", "").replace(",", "")
}
// limpa todos caracteres que não são letras
function filtraCaracteres(campo)
{
    vr = campo;
    for (i = 0; i < tam; i++)
    {
        //Caracter
        if (vr.charCodeAt(i) != 32 && vr.charCodeAt(i) != 94 && (vr.charCodeAt(i) < 65 ||
              (vr.charCodeAt(i) > 90 && vr.charCodeAt(i) < 96) ||
                  vr.charCodeAt(i) > 122) && vr.charCodeAt(i) < 192)
        {
            vr = vr.replace(vr.substr(i, 1), "");
        }
    }
    return vr;
}
// limpa todos caracteres que não são números, menos a vírgula
function filtraNumerosComVirgula(campo)
{
    var s = "";
    var cp = "";
    vr = campo;
    tam = vr.length;
    var complemento = 0; //flag paga contar o número de virgulas
    for (i = 0; i < tam; i++)
    {
        if ((vr.substring(i, i + 1) == "," && complemento == 0 && s != "") ||
                  vr.substring(i, i + 1) == "0" ||
                  vr.substring(i, i + 1) == "1" ||
                  vr.substring(i, i + 1) == "2" ||
                  vr.substring(i, i + 1) == "3" ||
                  vr.substring(i, i + 1) == "4" ||
                  vr.substring(i, i + 1) == "5" ||
                  vr.substring(i, i + 1) == "6" ||
                  vr.substring(i, i + 1) == "7" ||
                  vr.substring(i, i + 1) == "8" ||
                  vr.substring(i, i + 1) == "9")
        {
            if (vr.substring(i, i + 1) == ",")
                complemento = complemento + 1;
            s = s + vr.substring(i, i + 1);
        }
    }
    return s;
}
function formataMesAno(campo, evt)
{
    //MM/yyyy
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam >= 2)
        campo.value = vr.substr(0, 2) + '/' + vr.substr(2);
    MovimentaCursor(campo, xPos);
}
function MascaraCPF(cpf) {
    if (mascaraInteiro(cpf) == false) {
        event.returnValue = false;
    }
    return formataCampo(cpf, '000.000.000-00', event);
}
function formataCNPJ(campo, evt)
{
    //99.999.999/9999-99
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam >= 2 && tam < 5)
        campo.value = vr.substr(0, 2) + '.' + vr.substr(2);
    else if (tam >= 5 && tam < 8)
        campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5);
    else if (tam >= 8 && tam < 12)
        campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8);
    else if (tam >= 12)
        campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '/' + vr.substr(8, 4) + '-' + vr.substr(12);
    MovimentaCursor(campo, xPos);
}

function formataDouble(campo, evt)
{
    //18,53012
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    campo.value = filtraNumerosComVirgula(campo.value);
    MovimentaCursor(campo, xPos);
}
function formataTelefone(campo, evt)
{
    //(00) 0000-0000
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam == 1)
        campo.value = '(' + vr;
    else if (tam >= 2 && tam < 6)
        campo.value = '(' + vr.substr(0, 2) + ') ' + vr.substr(2);
    else if (tam >= 6)
        campo.value = '(' + vr.substr(0, 2) + ') ' + vr.substr(2, 4) + '-' + vr.substr(6);
    //(
    //    if(xPos == 1 || xPos == 3 || xPos == 5 || xPos == 9)
    //        xPos = xPos +1
    MovimentaCursor(campo, xPos);
}
function formataTexto(campo, evt, sMascara)
{
    //Nome com Inicial Maiuscula.
    evt = getEvent(evt);
    xPos = PosicaoCursor(campo);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraCaracteres(filtraCampo(campo));
    tam = vr.length;
    if (sMascara == "Aa" || sMascara == "Xx")
    {
        var valor = campo.value.toLowerCase();
        var count = campo.value.split(" ").length - 1;
        var i;
        var pos = 0;
        var valorIni;
        var valorMei;
        var valorFim;
        valor = valor.substring(0, 1).toUpperCase() + valor.substring(1, valor.length);
        for (i = 0; i < count; i++)
        {
            pos = valor.indexOf(" ", pos + 1);
            valorIni = valor.substring(0, valor.indexOf(" ", pos - 1)) + " ";
            valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toUpperCase();
            valorFim = valor.substring(valor.indexOf(" ", pos) + 2, valor.length);
            valor = valorIni + valorMei + valorFim;
        }
        campo.value = valor;
    }
    if (sMascara == "Aaa" || sMascara == "Xxx")
    {
        var valor = campo.value.toLowerCase();
        var count = campo.value.split(" ").length - 1;
        var i;
        var pos = 0;
        var valorIni;
        var valorMei;
        var valorFim;
        var ligacao = false;
        var chrLigacao = Array("de", "da", "do", "para", "e")
        valor = valor.substring(0, 1).toUpperCase() + valor.substring(1, valor.length);
        for (i = 0; i < count; i++)
        {
            ligacao = false;
            pos = valor.indexOf(" ", pos + 1);
            valorIni = valor.substring(0, valor.indexOf(" ", pos - 1)) + " ";
            for (var a = 0; a < chrLigacao.length; a++)
            {
                if (valor.substring(valorIni.length, valor.indexOf(" ", valorIni.length)).toLowerCase() == chrLigacao[a].toLowerCase())
                {
                    ligacao = true;
                    break;
                }
                else if (ligacao == false && valor.indexOf(" ", valorIni.length) == -1)
                {
                    if (valor.substring(valorIni.length, valor.length).toLowerCase() == chrLigacao[a].toLowerCase())
                    {
                        ligacao = true;
                        break;
                    }
                }
            }
            if (ligacao == true)
            {
                valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toLowerCase();
            }
            else
            {
                valorMei = valor.substring(valor.indexOf(" ", pos) + 1, valor.indexOf(" ", pos) + 2).toUpperCase();
            }
            valorFim = valor.substring(valor.indexOf(" ", pos) + 2, valor.length);
            valor = valorIni + valorMei + valorFim;
        }
        campo.value = valor;
    }
    MovimentaCursor(campo, xPos);
    return true;
}
// Formata o campo CEP
function formataCEP(campo, evt)
{
    //312555-650
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    vr = campo.value = filtraNumeros(filtraCampo(campo));
    tam = vr.length;
    if (tam < 5)
        campo.value = vr;
    else if (tam == 5)
        campo.value = vr + '-';
    else if (tam > 5)
        campo.value = vr.substr(0, 5) + '-' + vr.substr(5);
    MovimentaCursor(campo, xPos);
}
function formataCartaoCredito(campo, evt)
{
    //0000.0000.0000.0000
    var xPos = PosicaoCursor(campo);
    evt = getEvent(evt);
    var tecla = getKeyCode(evt);
    if (!teclaValida(tecla))
        return;
    var vr = campo.value = filtraNumeros(filtraCampo(campo));
    var tammax = 16;
    var tam = vr.length;
    if (tam < tammax && tecla != 8)
    { tam = vr.length + 1; }
    if (tam < 5)
    { campo.value = vr; }
    if ((tam > 4) && (tam < 9))
    { campo.value = vr.substr(0, 4) + '.' + vr.substr(4, tam - 4); }
    if ((tam > 8) && (tam < 13))
    { campo.value = vr.substr(0, 4) + '.' + vr.substr(4, 4) + '.' + vr.substr(8, tam - 4); }
    if (tam > 12)
    { campo.value = vr.substr(0, 4) + '.' + vr.substr(4, 4) + '.' + vr.substr(8, 4) + '.' + vr.substr(12, tam - 4); }
    MovimentaCursor(campo, xPos);
}

//recupera tecla
//evita criar mascara quando as teclas são pressionadas
function teclaValida(tecla)
{
    if (tecla == 8 //backspace
        //Esta evitando o post, quando são pressionadas estas teclas.
        //Foi comentado pois, se for utilizado o evento texchange, é necessario o post.
           || tecla == 9 //TAB
           || tecla == 27 //ESC
           || tecla == 16 //Shif TAB
           || tecla == 45 //insert
           || tecla == 46 //delete
           || tecla == 35 //home
           || tecla == 36 //end
           || tecla == 37 //esquerda
           || tecla == 38 //cima
           || tecla == 39 //direita
           || tecla == 40)//baixo
        return false;
    else
        return true;
}
// recupera o evento do form
function getEvent(evt)
{
    if (!evt) evt = window.event; //IE
    return evt;
}
//Recupera o código da tecla que foi pressionado
function getKeyCode(evt) {
    var code;
    if (typeof (evt.keyCode) == 'number')
        code = evt.keyCode;
    else if (typeof (evt.which) == 'number')
        code = evt.which;
    else if (typeof (evt.charCode) == 'number')
        code = evt.charCode;
    else
        return 0;
    return code;
}
// validação de datas
function validaData(campo, valor) {
        // this, this.value
     var date=valor;
     var ardt=new Array;
     var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
     ardt=date.split("/");
     erro=false;
     if ( date.search(ExpReg)==-1){
          erro = true;
          }
     else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
          erro = true;
     else if ( ardt[1]==2) {
          if ((ardt[0]>28)&&((ardt[2]%4)!=0))
               erro = true;
          if ((ardt[0]>29)&&((ardt[2]%4)==0))
               erro = true;
         }
     if (erro) {
          campo.focus();
          campo.value = "";
          return false;
         }
    return true;
}
// formata cpf
function MascaraCPF(cpf) {
    if (mascaraInteiro(cpf) == false) {
        event.returnValue = false;
    }
    return formataCampo(cpf, '000.000.000-00', event);
}

// valida CPF
function valCpf($cpf) {
    $cpf = preg_replace('/[^0-9]/', '', $cpf);
    $digitoA = 0;
    $digitoB = 0;
    for ($i = 0, $x = 10; $i <= 8; $i++, $x--) {
        $digitoA += $cpf[$i] * $x;
    }
    for ($i = 0, $x = 11; $i <= 9; $i++, $x--) {
        if (str_repeat($i, 11) == $cpf) {
            return false;
        }
        $digitoB += $cpf[$i] * $x;
    }
    $somaA = (($digitoA % 11) < 2) ? 0 : 11 - ($digitoA % 11);
    $somaB = (($digitoB % 11) < 2) ? 0 : 11 - ($digitoB % 11);
    if ($somaA != $cpf[9] || $somaB != $cpf[10]) {
        return false;
    } else {
        return true;
    }
}
// validar email
function validaEmail(email) {
     var str = email;
     var filtro = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if (filtro.test(str)) {
            return true;
        } else {
            return false;
        }
 }
function MascaraRG(rg){
    var strRG = '';
    strRG = strRG + rg;
    if (strRG.length == 2){
        strRG = strRG + '.';
        document.forms(0).rg.value = strRG;
    }
    if (strRG.length == 6){
        strRG = strRG + '.';
        document.forms(0).rg.value = strRG;
    }
    if (strRG.length == 10){
        strRG = strRG + '-';
        document.forms(0).rg.value = strRG;
    }
}
 

quinta-feira, 8 de maio de 2014

Clique no item do GridView e apresentar resultado em outro Campo

 
No exemplo acima estou relacionando um  TEXTBOX, vinculado ao GRIDVIEW. O objetivo é filtrar o dado do textBox e ao clicar na opção selecionar do view este retornas em textBox ou Label a informação selecionada. Para que isso aconteça, faça:
 
1 - Dê dois cliques no GridView;
2 - e Digite o código corresponde abaixo.
 
 
Crie uma Instância do Objeto GridView e informe nos Labels a linha e  posição das colunas.
 
Espero que ajude pessoal.
Até mais.
 
 

quarta-feira, 7 de maio de 2014

Classe com Validação de CPF - CEP e EMAIL

Helder Ricardo Silva
Analista de Sistemas - Universidade Braz Cubas
 
Segue abaixo a classe com atributos - propriedades - métodos
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics.Contracts;
using System.Windows.Forms;
namespace DataDogAndCatShop.Model
{
    public class  Cliente
    {
        protected string nome;
        private string cpf;
        private string rg;
        private string telefone;
        private string celular;
        private string email;
        private string cep;
        private string endereco;
        private string bairro;
        private string cidade;
        private string estado;
        private string pontoref;
        private string dataNasc;
        private string dataUltm;
        private int numero;
        //propriedades da tabela
        //propriedade para nome
        public string _nome
        {
            get
            {
                return nome;
            }
            set
            {
                if (string.IsNullOrEmpty(value))
                {
                    MessageBox.Show("Não é possível apresentar nome vazio");
                }
                else
                {
                   nome= value;
                }
                Contract.EndContractBlock();
            }
        }
        public string _cpf
        {
            get
            {
                return cpf;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("O CPF não pode ser vazio");
                }
                else
                {
                    cpf = value;
                }
            }
        }
        public string _rg
        {
            get
            {
                return rg;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Não é possível rg vazio");
                }
                else
                {
                    rg = value;
                }
            }
        }
        public string _telefone
        {
            get
            {
                return telefone;
            }
            set
            {
                telefone = value;
            }
        }
        public string _celular
        {
            get
            {
                return celular;
            }
            set
            {
                celular = value;
            }
        }
        public string _email
        {
            get
            {
                return email;
            }
            set
            {
                email = value;
            }
        }
        public string _cep
        {
            get
            {
                return cep;
            }
            set
            {
                cep = value;
            }
        }
        public string _endereco
        {
            get
            {
                return endereco;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Endereço não pode estar vazio");
                }
                else
                {
                    endereco = value;
                }
            }
        }
        public int _numero
        {
            get
            {
                return numero;
            }
            set
            {
                if (string.IsNullOrEmpty(value.ToString()) || string.IsNullOrWhiteSpace(value.ToString()))
                {
                    MessageBox.Show("O campo número não pode estar vazio");
                }
                else
                {
                    numero = value;
                }
            }
        }
        public string _bairro
        {
            get
            {
                return bairro;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Não é possível bairro vazio");
                }
                else
                {
                    bairro = value;
                }
            }
        }
        public string _cidade
        {
            get
            {
                return cidade;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Não é possível cidade vazia");
                }
                else
                {
                    cidade = value;
                }
            }
        }
        public string _estado
        {
            get
            {
                return estado;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Não é possível estado vazio");
                }
                else
                {
                    estado = value;
                }
            }
        }
        public string _pontoref
        {
            get
            {
                return pontoref;
            }
            set
            {
                pontoref = value;
            }
        }
        public string _dataNasc
        {
            get
            {
                return dataNasc;
            }
            set
            {
                dataNasc = value;
            }
        }
        public string _dataUltm
        {
            get
            {
                return dataUltm;
            }
            set
            {
                if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value))
                {
                    MessageBox.Show("Não é possível Data da Última Visita vazio");
                }
                else
                {
                    dataUltm = value;
                }
            }
        }
        public bool validarCPF(string CPF)
        {
            int[] mt1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            int[] mt2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            string TempCPF;
            string Digito;
            int soma;
            int resto;
 
            CPF = CPF.Trim();
            CPF = CPF.Replace(".", "").Replace("-", "");
 
            if (CPF.Length != 11)
                return false;
 
            TempCPF = CPF.Substring(0, 9);
            soma = 0;
            for (int i = 0; i < 9; i++)
                soma += int.Parse(TempCPF[i].ToString()) * mt1[i];
 
            resto = soma % 11;
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
 
            Digito = resto.ToString();
            TempCPF = TempCPF + Digito;
            soma = 0;
 
            for (int i = 0; i < 10; i++)
                soma += int.Parse(TempCPF[i].ToString()) * mt2[i];
 
            resto = soma % 11;
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
 
            Digito = Digito + resto.ToString();
 
            return CPF.EndsWith(Digito);
        }
        public bool ValidaCep(string cep)
        {
            if (cep.Length == 8)
            {
                cep = cep.Substring(0, 5) + "-" + cep.Substring(5, 3);
                //txt.Text = cep;
            }
            return System.Text.RegularExpressions.Regex.IsMatch(cep, ("[0-9]{5}-[0-9]{3}"));
        }
        //Método que valida o Email
        public  bool ValidaEmail(string email)
        {
            return System.Text.RegularExpressions.Regex.IsMatch(email, ("(?<user>[^@]+)@(?<host>.+)"));
        }
    }
 }

   
   
 

Como Criar uma aplicação com padrão DAO utilizando WebForm

Alguns exemplos em C# são sempre representados por Console, contudo quando se vai aplicar na prática n]ao utilizamos o console e sim o Windows FORM ou WebFORM. neste tutorial estarei iniciando uma série de exemplos aplicando o Padrão de desenvolvimento DAO.
 
Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Objeto de acesso a dados (ou simplesmente DAO, acrônimo de Data Access Object), é um padrão para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados. Numa aplicação que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO.
 
 
Vamos começar Atribuindo uma nova Aplicação em Visual Studio 2013 para Web como mostra a figura abaixo.
 
 
Confirme com Ok e você terá uma apresentação como é apresentado na figura abaixo
 
A Boa Prática em Programação pede para que separemos a Lógica do negócio da estrutura de dados e da visualização do cliente. Não podemos deixar a programação de Visualização junto com a de dados e com a regra de negócio, isso acarretaria grandes transtornos em alterações.
 
Vamos criar as pastas que irão agora auxiliar o time de desenvolvimento na elaboração de projetos. Conforme a figura abaixo, crie as pastas pressionando o botão direito no nome da aplicação.
 
 
Agora podemos começar a criar a aplicação utilizando o padrão de projeto com DAO.
Vamos começar criando as Interfaces que são os modelos para que possamos implementar em nossa aplicação. As Interfaces auxiliam na manutenção da aplicação.
Pressione o Botão direito na pasta Interface e adicione uma interface.
 
Agora começaremos a criar o modelo para a Interface de conexão com o Banco de Dados. Estarei utilizando uma conexão com SQL Server, mas você pode utilizar uma Interface para conectar com qualquer tecnologia, lembre-se é um modelo.
 
Dê o nome de IConnection
 
 
Note que nas linhas acima adicionei as referencias data e sqlClient.
 
Agora vamos criar a Interface para o modelo que as classes irão utilizar como: Gravar, Excluir, Adicionar. Listar, Procurar..... entre outras.
Da mesma forma que foi feita a Interface IConnection faça para a IDAO.
 
 
Agora estaremos criando as Classes de Conexao, Classe de Filme e a Classe que conterá a regra persistência do Banco de Dados.
Até aqui você deverá ter a seguinte estrutura como mostra a figura abaixo.
 
Selecione a Pasta Classes para que possamos criar juntos a Classe de Conexão com o banco de Dados, espero que saiba conectar.
Pressione o Botão Direito na pasta Classe e ADD uma classe com o nome de Connection
 
Vamos agora implementar a interface na nossa Classe
 
 
 
Veja que ao implementar os métodos da Interface foram alocados na nossa classe.
Caso você quisesse criar uma classe para conexão em MySQL ou Oracle ou qualquer outro banco bastaria criar uma classe e implementar.
 
 
Continuo implementando... agora vamos cuidar do método fechar a conexão.
 
 
Agora nós iremos criar a Classe Filme
 
 
Uma vez criada a classe de Filme devemos criar a classe relacionada ao filme que irá conter dados da conexão com o banco e com a lógica do CRUD onde incluiremos os comandos do SQL.
 
Vamos então criar a Classe FilmeDAO.
 
 
O construtor da Classe irá obrigar todas as classe que foram instanciadas utilizarem a conexão já existente, melhorando a performance do Banco de Dados.
 
Agora implemente o Construtor IDAO, clique sobre ele, irá aparecer um risco azul pequeno e logo em seguida clique em implementar.
 
 
Agora iremos criar o método para atualizar os dados quando estes foram encontrados.
 
 
Agora iremos criar o método para excluir o filme.
 
 
Agora estaremos atribuindo um método para localizar um filme por código e posteriormente você pode fazer por outros campos. basta implementar na Interface IDAO.
 
 
Agora iremos criar um procedimento Bacana que irá apresentar todos os dados em um grid. No primeiro momento a classe filmeDAO só armazena a lógica, mas que será importante para que o usuário possa visualizar na Web quando clicar em um botão.
 
Note que estamos apresentando o código puro, limpo, sem misturar textbox, comandos html, ai meu Deus, que horror, mas com o tempo você verá que seu código é mais legível.
 
 
 
Agora vamos terminar o último procedimento.
 
 
 
Agora você deve colocar na frente de cada Interface a palavra public caso você não tenha colocado.
 
Agora compile o programa
 
 
 
Você deverá ter 0 erros de programação.
 
Agora vamos criar o formulário contendo os dados para o cliente visualizar e interagir com as interfaces e classes.
 
Pressione botão direito em View e adicone um webform
 
 

você deverá ter uma abordagem de projeto como mostra a figura abaixo

 
crie uma visualização no Design do formulário como mostra a figura abaixo
 
Agora dê dois Clique no Botão Cadastrar
 
Veja como o código fica limpo pessoal, essas são as boas práticas de programação.
 
 
 
Agora Dê Dois cliques no Botão Listar
 
Código do Botão Listar
 
Bom pessoal é só executar - faça um cadastro e liste
veja o exemplo abaixo.
 
 
Após clicar em cadastrar, clique em listar
 
 
Bom pessoal agora é só realizar ajustes, e implementar as outras funções.
 
estou liberando o código em anexo para vocês.
 
Fiquem com Deus e até mais.