Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS VALIDACIÓN DE DATOS Introducción La mayoría de las veces nuestras aplicaciones fallan porque los datos que reciben y que intentan tratar no son los correctos y no se ha comprobado previamente. La ClaseValida encapsula una serie de métodos que nos ayuda a comprobar que los datos que recibimos tienen el formato correcto. Uso de ClaseValida La ClaseValida está incluida en el conjunto de clases que agrupa ClaseSeguridad, como ClaseCertificado. Por eso para agregarla a nuestro proyecto tendremos que incluir una referencia a: /ToolsNEt/DLLs/ClaseSeguridad.dll ClaseSeguridad está dentro del espacio de nombres de la ua. using ua; Métodos “ES” Comprueban que una cadena tenga un determinado formato y devuelven verdadero o falso. Reciben como resultado una cadena con el valor o un control Textbox del que extraerán el contenido. EsCorreo Nos indica si la cadena es una dirección de correo electrónico válida. bool EsCorreo(object correo) EsCorreoUA Nos indica si la cadena es una dirección de correo electrónico válida de la universidad. Con terminación ua.es bool EsCorreoUa(object correo) 1 Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS EsCodigoPostal Nos devuelve si tiene formato de código postal, con 5 dígitos. bool EsCodigoPostal(object cp) EsCursoAca Valida Cadena que tenga formato 2009-10 y que sea consecutivo, devuelve true o false. bool EsCursoAca(object curso) EsURL Nos indica si la cadena es una url válida bool EsURL(object url) EsNumero Método que comprueba si el número es entero o no bool EsNumero(object numero) EsDecimal Método que nos indica si el número es un valor fraccionario bool EsDecimal(object numero) EsMoneda Método que nos indica si el número es un valor fraccionario bool EsMoneda(object moneda) EsFecha Método que nos indica si la cadena enviada tiene formato fecha bool EsFecha(object fecha) EsPassword Nos devuelve si es una contraseña bien formada, de entre 8 y 10 caracteres y que incluya números bool OkPassword(object password) 2 Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS EsCuentaBancaria Validación de una cuenta bancaria española. Podemos pasarle los datos de la cuenta de tres formas: 1. Introduciendo banco, oficina, dígito de control y cuenta como cadenas de texto bool EsCuentaBancaria(string banco, string oficina, string dc, string cuenta) 2. Cuenta bancaria completa como string: bool EsCuentaBancaria(string cuentaCompleta) 3. Introduciendo banco, oficina, dígito de control y cuenta como números bool EsCuentaBancaria(UInt64 banco, UInt64 oficina, UInt64 dc, UInt64 cuenta) EsDocumentoIdentificacion Validamos si un determinado documento de identificación (NIF, DNI, Pasaporte y NIE) es correcto numerodocumentoidentificacion: Número de identificación a validar tipodocumento: Tipo de documento (de tipo EnumTipoDocumentoIdentificacion) Devuelve si es correcto o no bool ValidarDocumentoIdentificacion ( string numerodocumentoidentificacion, EnumTipoDocumentoIdentificacion tipodocumento ) EnumTipoDocumentoIdentificacion Enumeración de los tipos de documentos con los que trabajamos desde las aplicaciones de la UA Sus valores son: Nif: NIF español (DNI con letra) Dni: DNI español (sin letra, para casos como los alumnos) Pasaporte: Pasaporte para personas extranjeras Nie: Número de identificación extranjeros enum EnumTipoDocumentoIdentificacion 3 Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS Métodos “Validar” Devuelven un valor correcto para el elemento a comprobar ValidarCursoAcademico Validamos que no se introduzca valores incorrectos para un curso académico, permitiendo asignar un valor por defecto. Con formato 2008-2009 y 08-09 y 2008-09, si no cumple retorna el valor por defecto. Ojo, no valida años consecutivos aun. Nos devuelve curso en caso de que sea válido o valorxdefecto en caso de que no lo sea string ValidarCursoAcademico(string curso, string valordefecto) ValidarTexto Método para validar cadenas de texto. Formatea el texto para que no se produzcan errores de tamaño o de valor. cadena: La cadena a validar tamano: El tamaño máximo, en caso de poner 0 no respeta el tamaño valordefecto: No enviar la cadena vacía, en ese caso se toma el valor por defecto Devuelve la cadena de texto formateada o con el valor por defecto string ValidarTexto(string cadena, int tamano, string valordefecto) Métodos “TryToParse” Conversión entre tipos de datos TryToParseInt32 Convierte una cadena de texto en un campo entero (Int32) int? TryToParseInt32(string value) TryToParseFloat Convierte una cadena de texto en un campo decimal (Float) static float? TryToParseFloat(string value) 4 Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS TryToParseString Analizamos un objeto (por ejemplo variable session, application, etc, y evitamos la excepción devolviendo "" en caso de que sea nulo string TryToParseString(object value) TryToParseDateTime Convierte una cadena de texto en un campo de fecha (DateTime) DateTime? TryToParseDateTime(string value) Métodos para listas de checkbox y radiobutton EstadoList Nos indica si un campo de agrupación de checks o radios está activo o no, devolviendo true o false. Podemos indicarle tanto la posición como el valor campo: Grupo de Checks o Radios que vamos a analizar posicion/valor: Posición o valor del elemento dentro del grupo Devuelve True o false indicando si está activo o no bool EstadoList(campo, int posicion/valor) HayMarcadoList Te indica si hay algún elemento marcado de una agrupación de checkboxs o radios campo: CheckBoxList o RadiButtonList que queremos analizar Devuelve True o false indicando si hay alguno activo bool HayMarcadoList(campo) ActivarCheckBoxGrupoVarios Permite activar el valor de uno o más checks de un CheckBoxList valores: Array de cadenas con los "valores" de los checks grupo: CheckBoxList que queremos activar void ActivarCheckBoxGrupoVarios(string[] valores, CheckBoxList grupo) 5 Programación avanzada en .NET con C# Servicio de Informática VALIDACIÓN DE DATOS ActivarRadioButtonList Permite activar el valor de un radio de un RadioButtonList valor: “Valor" del radio que queremos activar grupo: RadioButtonList que queremos activar void ActivarRadioButtonList(string valor, RadioButtonList grupo) Otros métodos CursoAcademicoActual Devuelve el curso académico actual public static string CursoAcademicoActual () LetraNif Genera la letra correspondiente a un DNI. char? LetraNif(string dni) LetraNie Genera ultima letra letra correspondiente a un NIE. Como entrada recibe el Nie incluyendo la primera letra char? LetraNie(string nie) MostrarDateTime Mostramos la fecha en el formato estándar, dd/mm/yyyy fecha: Fecha que queremos convertir Devuelve la fecha convertida o "" en caso de error string MostrarDateTime(DateTime? Fecha) CalcularEdad Calcula la edad de una persona a partir de su fecha de nacimiento fechanacimiento: Fecha de nacimiento de la persona int CalcularEdad(DateTime? Fechanacimiento) 6