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 Diseñador de DataSet.

  • 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:

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. 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, vea Valores de configuración de Visual Studio.

Abrir la solución NTierWalkthrough

Para abrir la solución NTierWalkthrough

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

  1. Abra el conjunto de datos en el Diseñador de DataSet haciendo doble clic en el archivo NorthwindDataSet.xsd del proyecto DataAccessTier en el Explorador de soluciones.

  2. 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.

  3. 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

  1. Presione F5.

  2. Los datos de las tablas Customers y Orders aparecen en el formulario.

  3. En el control DataGridView que contiene los pedidos, cambie el valor de la columna OrderDate (de cualquier registro) a la fecha de mañana.

  4. 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.

  5. Coloque el puntero del mouse sobre el icono de error para ver el error de validación.

  6. 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:

Vea también

Conceptos

Novedades en el desarrollo de aplicaciones de datos

Otros recursos

Trabajar con conjuntos de datos en aplicaciones de n capas

Actualización jerárquica

Obtener acceso a los datos en Visual Studio