• Lunes 22 de Diciembre de 2014, 09:26

Autor Tema:  Validacion  (Leído 2585 veces)

camilo0064

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Validacion
« en: Martes 10 de Noviembre de 2009, 21:44 »
0

Publicidad 
Buenas tardes, soy algo nuevo con c#, esto realizando una aplicación inicialmente en consola, y queria saber como puedo verificar que los datos ingresados por alguien sean del tipo que quiero, ya sea numerico, o string, supongo que si valido en una cobsola me servira a la hora de trabajar en windform o asp.net, les agradezco la ayuda, tambien si alguien puede recomendarme una buena documentacion, hacerca de C#, muchas gracias!!

skarlita_19

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Validacion
« Respuesta #1 en: Jueves 10 de Diciembre de 2009, 01:22 »
0
PRIMERA PARTE
 BY Alejandro Osorio
La primera forma de validación que veremos se refiere a que no se puedan capturar caracteres que no se deba capturar, es decir, que solamente se puedan capturar ciertos caracteres y no todos los demás. Como en el caso del RFC, en donde solo debe de haber escrito letras y números.

Para esto vamos a crear una nueva clase a la que le pondremos como nombre Validaciones.cs.

Una vez creada la clase validaciones, lo siguiente que haremos es agregar la referencia a un nuevo espacio de nombres. La instrucción es la siguiente y la pondremos justo debajo del ultimo espacio de nombres declarado:

using System.Windows.Forms;


Con este espacio de nombres podremos acceder a los elementos/clases u objetos relacionados con los formularios. Después, dentro de la clase vamos a crear una variable de tipo string a la cual llamaremos Caracteres.  La idea de esta variable es almacenar los caracteres que son permitidos. La instrucción es la siguiente:

string Caracteres;


Ahora, por ejemplo… vamos a crear una función con la que validaremos la captura del dato Nombre del Alumno en donde se supone que no debe de ir ningún símbolo o numero capturado. La estructura de la función es la siguiente:

       
   public void SoloLetras(object sender, KeyPressEventArgs e)
   {

   }


Si se fija en la estructura de la función anterior, esta función recibe como parámetros un dato de tipo object, otro de tipo KeyPressEventArgs, esto con el fin de que esta función actúe como el evento KeyPress del control TextBox en el que lo utilicemos.

Ahora bien, el código de esta función es el siguiente:

   //Lista de caracteres que seran permitidos capturar.
   //Noten que al prinicio hay un espacio en blanco... para que puedan introducir espacios en blanco
   Caracteres = " AaBbCcDdEeFfGgHhiiJjKkllMmNnÑñOoPpQqRrSsTtUuVvWwXxYyZzÁáÉéÍíÓóÚú";

   //Una variable de tipo "string" es como un arreglo de tipo "char", donde cada caracter tiene una posicion
      //dentro del conjunto de caracteres de la variable. Entonces, toda variable de tipo string tiene una funcion
      //llamada "IndexOf" el cual devuelve el indice de algun caracter que se este buscando si es que se encuentra
      //entre los caracteres de la variale. En caso de no encontrarse se devuelve un valor negativo o nulo.

    //Si se devuelve un indice que no sea mayor o igual a cero, entonces que se maneje/manipule el caracter
      //que fue presionado  si no se presiono la tecla retroceso.
      if (!(Caracteres.IndexOf(e.KeyChar) >= 0) && e.KeyChar != 8)
      {
         e.Handled = true;
   }

Ahora… para poner en uso esta función hay que irnos al formulario de Alumnos. La idea es aplicar esta validación en la captura de Nombre y Apellidos del alumno para ver que funcionan.

Primero que nada, en el formulario de Alumnos, vamos a crear un objeto llamado Val de tipo Validaciones. Esta instrucción la colocaremos al inicio del código del formulario, junto con los demás objetos que tenemos creados. La instrucción es la siguiente:

Clases.Validaciones Val = new Clases.Validaciones();





Después  de haber hecho esto, nos vamos al constructor del formulario y vamos a escribir la siguiente instrucción:

            //Al evento "KeyPress" del control txtNombre le asignamos la función que va a ejecutar cada ves
            //que se presione una tecla. Noten que no hay necesidad en esta ocasión de colocar los
            //parentesis al final del nombre de la función.
            txtNombre.KeyPress += Val.SoloLetras;
            txtApp.KeyPress += Val.SoloLetras;
            txtApm.KeyPress += Val.SoloLetras;


Si ustedes ejecutan el formulario y prueban la captura de datos de lo que es el nombre y apellidos del alumno, se darán cuenta que solo pueden capturar letras y nada mas. Los números y símbolos no serán visibles o simplemente no se te permitida capturarlos en esos controles.


Hora, si lo que ustedes desean es también validad en algún otro control TextBox que solo se puedan capturar números, como por ejemplo, el numero de teléfono y de celular del Alumno, entonces podríamos hacer otra función dentro de la misma clase Validaciones que podríamos llamar EnterosPositivos. El código sería el siguiente:

        public void EnterosPositivos(object sender, KeyPressEventArgs e)
        {
            Caracteres = "0123456789";

            if (!(Caracteres.IndexOf(e.KeyChar) >= 0))
            {
                e.Handled = true;
            }
        }


Y ahora, para poner en uso esta función, en el mismo constructor del formulario de Alumnos colocamos las siguientes instrucciones:

            txtTelefono.KeyPress += Val.EnterosPositivos;
            txtCelular.KeyPress += Val.EnterosPositivos;



Como se pueden dar cuenta.. es muy fácil validad la captura de datos en un formulario de C#, básicamente lo que tienes que hacer es crear alguna función extra que te permita capturar solo los caracteres que necesites para un control en particular. Como por ejemplo. Para capturar la dirección del alumno, se pueden emplear, letras, números y algunos símbolos, como el punto “.”, el de numero “#” , la diagonal “/” el guión medio “-”, etc.


NOTA:
En la segunda parte de esta guía,  les explicare como validar por ejemplo que el correo electrónico del alumno este correctamente escrito, o por ejemplo, como validar el RFC, la CURP, un numero de placa, etc.