Tutorial: Agregar validación a una aplicación de datos con n niveles
Validar datos es el proceso de confirmar que los valores especificados en los objetos de datos (por ejemplo, DataTables o clases de LINQ to SQL) cumplen las restricciones en el esquema de un objeto. La validación también garantiza que se cumplen las reglas establecidas para la aplicación. Se recomienda validar los datos antes de enviar las actualizaciones a la base de datos subyacente para reducir los errores. De este modo, también se reduce el número de viajes de ida y vuelta entre una aplicación y la base de datos.
En este tutorial se proporcionan instrucciones paso a paso para agregar validación a una aplicación de n niveles (solución creada en el tema Tutorial: Crear una aplicación de datos con n niveles).
Durante este tutorial, aprenderá a realizar las siguientes tareas:
Generar automáticamente clases parciales mediante el Crear y editar conjuntos de datos con tipo.
Agregar código para realizar la validación cuando cambie el valor en una columna individual.
Requisitos previos
Para realizar este tutorial, necesita lo siguiente:
La solución y los proyectos asociados creados en Tutorial: Crear una aplicación de datos con n niveles.
Acceso a la base de datos de ejemplo Northwind. Para obtener más información, vea Cómo: Instalar bases de datos de ejemplo.
Nota
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, consulte Customizing Development Settings in Visual Studio.
Abrir la solución NTierWalkthrough
Para abrir la solución NTierWalkthrough
En el menú Archivo, elija Abrir, haga clic en Proyecto o solución y, a continuación, navegue a la ubicación del archivo NTierWalkthrough.sln.
Nota
El archivo NTierWalkthrough.sln se crea en el tema Tutorial: Crear una aplicación de datos con n niveles y es un requisito previo para poder completar este tutorial.Complete el tema Tutorial: Crear una aplicación de datos con n niveles y, si aún no lo ha hecho, guarde todos los proyectos cuando termine.
Agregar validación para comprobar los datos durante un cambio en una columna individual
Este procedimiento agregará validación para comprobar que la columna OrderDate de un nuevo pedido tiene como valor la fecha actual o una fecha anterior. Esta aplicación requiere que la columna OrderDate no tenga ninguna fecha posterior a la de hoy; no se permiten futuros pedidos.
Para agregar validación con el fin de comprobar el valor especificado en la columna OrderDate
Abra el conjunto de datos en el Crear y editar conjuntos de datos con tipo haciendo doble clic en el archivo NorthwindDataSet.xsd del proyecto DataAccessTier en el Explorador de soluciones.
Haga doble clic en la columna OrderDate de la tabla Orders en el diseñador. De este modo, se crea el controlador de eventos ColumnChanging.
Nota
El Diseñador de DataSet no crea automáticamente un controlador de eventos para el evento de C#.El código que se exige para administrar el evento en C# está incluido más adelante en este procedimiento.Se crea SampleColumnChangingEvent y, a continuación, se suscribe al evento ColumnChanging en el método EndInit.
Agregue código para comprobar que e.ProposedValue de la columna OrderDate contiene la fecha actual o una fecha anterior. Si el valor propuesto no es válido, establezca la columna para indicar que contiene un error.
En el ejemplo de código siguiente se valida que la columna OrderDate contiene la fecha actual o una fecha anterior. Si el valor de OrderDate es una fecha posterior a la actual, la columna OrderDate genera un error. La cláusula Else borra el error si el valor de OrderDate es la fecha de hoy o una fecha anterior.
Pegue el código de Visual Basic en el controlador de eventos ColumnChanging. Pegue el código de C# en la declaración de clase parcial OrdersDataTable.
If (e.Column.ColumnName = Me.OrderDateColumn.ColumnName) Then If CType(e.ProposedValue, DateTime) > Today Then e.Row.SetColumnError(e.Column, "OrderDate cannot be in the future") Else e.Row.SetColumnError(e.Column, "") End If End If
// Replace the NorthwindDataSet partial class with the following: public partial class NorthwindDataSet { partial class OrdersDataTable { public override void EndInit() { base.EndInit(); // Configure the ColumnChanging event // to call the SampleColumnChangingEvent method. ColumnChanging += SampleColumnChangingEvent; } public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e) { if (e.Column.ColumnName == OrderDateColumn.ColumnName) { if ((System.DateTime)e.ProposedValue > System.DateTime.Today) { e.Row.SetColumnError("OrderDate", " OrderDate cannot be in the future"); } else { e.Row.SetColumnError("OrderDate", ""); } } } } }
Probar la aplicación
Para probar la aplicación, cambie el valor de la columna OrderDate a una fecha no válida.
Para probar la aplicación
Presione F5.
Los datos de las tablas Customers y Orders aparecen en el formulario.
En el control DataGridView que contiene los pedidos, cambie el valor de la columna OrderDate (de cualquier registro) a la fecha de mañana.
Salga de la fila para que se acepte el cambio.
Se produce un error en la validación y aparece un icono de error en la celda de OrderDate que contiene el valor no válido.
Coloque el puntero del mouse sobre el icono de error para ver el error de validación.
Cierre el formulario.
Pasos siguientes
Dependiendo de los requisitos de la aplicación, hay varios pasos que se pueden realizar después de agregar validación a una aplicación de n niveles. Por ejemplo, quizás desee realizar la siguiente mejora en esta aplicación:
- Agregar validación para comprobar los cambios cuando cambia un registro completo. Para obtener más información, vea Cómo: Agregar validación a un conjunto de datos con n niveles.